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

Side by Side Diff: native_client_sdk/doc_generated/migration/index.html

Issue 2875303003: Add migration to WebAssembly information to PNaCl / NaCl docs. (Closed)
Patch Set: fix Created 3 years, 7 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
OLDNEW
(Empty)
1 {{+bindTo:partials.standard_nacl_article}}
2
3 <section id="webassembly-migration-guide">
4 <span id="migration"></span><h1 id="webassembly-migration-guide"><span id="migra tion"></span>WebAssembly Migration Guide</h1>
5 <h2 id="p-nacl-deprecation-announcements">(P)NaCl Deprecation Announcements</h2>
6 <p>We recently announced the deprecation of Portable NativeClient
7 as well as the deprecation of
8 <a class="reference external" href="https://blog.chromium.org/2016/08/from-chrom e-apps-to-web.html">Chrome Apps</a>
9 outside of ChromeOS.
10 As a result, in the near future, PNaCl will no longer be supported in Chrome.
11 And NaCl will be supported only in the context of ChromeOS and Extensions.</p>
12 <p>We appreciate the investment you&#8217;ve made bringing native code to the We b
13 with these pioneering solutions, but have now refocused our efforts
14 on the cross browser <a class="reference external" href="http://webassembly.org" >WebAssembly</a> standard
15 in order to bring similar functionality to the Web in general.
16 While WebAssembly currently cannot match all of (P)NaCl&#8217;s capabilities,
17 we are working to expand its capabilities in tandem with other
18 browsers, and believe most use cases will soon be covered.</p>
19 <h2 id="toolchain-migration">Toolchain Migration</h2>
20 <p>For the majority of (P)NaCl uses cases we recommend transitioning
21 from the NaCl SDK to <a class="reference external" href="http://webassembly.org/ getting-started/developers-guide/">Emscripten</a>.
22 While direct support for NaCl / Pepper APIs in not available,
23 we&#8217;ve attempted to list equivalents.
24 Migration is likely to be reasonably straightforward
25 if your application is portable to Linux, uses
26 <a class="reference external" href="https://www.libsdl.org/">SDL</a>, or POSIX A PIs.
27 For more challenging porting cases, please reach out on
28 <a class="reference external" href="mailto:native-client-discuss&#37;&#52;&#48;g ooglegroups&#46;com">native-client-discuss<span>&#64;</span>googlegroups<span>&# 46;</span>com</a></p>
29 <h2 id="api-migration">API Migration</h2>
30 <p>We&#8217;ve outlined here the status of Web Platform substitutes for each
31 of the APIs exposed to (P)NaCl.
32 Additionally, the table lists the library or option in Emscripten
33 that offers the closest substitute.</p>
34 <p>We expect to add shared memory threads support to WebAssembly in 2017,
35 as threads are crucial to matching (P)NaCl&#8217;s most interesting use
36 cases. Migration items which assume forthcoming threads support
37 are marked below. If your application&#8217;s flow control relies heavily on blo cking
38 APIs, you may also find threads support is required for convenient porting.</p>
39 <p>While we&#8217;ve tried to be accurate in this table,
40 there are no doubt errors or omissions.
41 If you encounter one, please reach out to us on
42 <a class="reference external" href="mailto:native-client-discuss&#37;&#52;&#48;g ooglegroups&#46;com">native-client-discuss<span>&#64;</span>googlegroups<span>&# 46;</span>com</a></p>
43 <h2 id="ppapi">PPAPI</h2>
44 <table>
45 </table>
46 <h3>PPB_Audio</h3>
47 <table>
48 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
49 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
50 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
51 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
52 <td style="font-size: 11px; padding: 5px;">Web API </td>
53 <td style="font-size: 11px; padding: 5px;">Limitations </td>
54 </tr>
55
56 <tr bgcolor="#fcfcfc">
57 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
58 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
59 <td style="font-size: 11px; padding: 5px;">SDL (partial) </td>
60 <td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - AudioWorkletNode ROUGHLY equivalent</td>
61 <td style="font-size: 11px; padding: 5px;">Still being standardized. </td>
62 </tr>
63
64 <tr bgcolor="#fcfcfc">
65 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetCurrentConf ig </td>
66 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
67 <td style="font-size: 11px; padding: 5px;">SDL </td>
68 <td style="font-size: 11px; padding: 5px;">AudioContext.* (gets back setting s passed in) </td>
69 <td style="font-size: 11px; padding: 5px;"> </td>
70 </tr>
71
72 <tr bgcolor="#fcfcfc">
73 <td style="font-weight: bold; font-size: 11px; padding: 5px;">StartPlayback </td>
74 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
75 <td style="font-size: 11px; padding: 5px;">SDL </td>
76 <td style="font-size: 11px; padding: 5px;">AudioBufferSourceNode.start </td>
77 <td style="font-size: 11px; padding: 5px;"> </td>
78 </tr>
79
80 <tr bgcolor="#fcfcfc">
81 <td style="font-weight: bold; font-size: 11px; padding: 5px;">StopPlayback < /td>
82 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
83 <td style="font-size: 11px; padding: 5px;">SDL </td>
84 <td style="font-size: 11px; padding: 5px;">AudioBufferSourceNode.stop </td>
85 <td style="font-size: 11px; padding: 5px;"> </td>
86 </tr>
87
88 </table>
89 <h3>PPB_AudioBuffer</h3>
90 <table>
91 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
92 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
93 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
94 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
95 <td style="font-size: 11px; padding: 5px;">Web API </td>
96 <td style="font-size: 11px; padding: 5px;">Limitations </td>
97 </tr>
98
99 <tr bgcolor="#fcfcfc">
100 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetTimestamp < /td>
101 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
102 <td style="font-size: 11px; padding: 5px;">SDL </td>
103 <td style="font-size: 11px; padding: 5px;">AudioBufferSourceNode.start (para meter) </td>
104 <td style="font-size: 11px; padding: 5px;">Passed in each time instead of at tached to the buffer. </td>
105 </tr>
106
107 <tr bgcolor="#fcfcfc">
108 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetTimestamp < /td>
109 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
110 <td style="font-size: 11px; padding: 5px;">SDL </td>
111 <td style="font-size: 11px; padding: 5px;">AudioBufferSourceNode.start (para meter) </td>
112 <td style="font-size: 11px; padding: 5px;"> </td>
113 </tr>
114
115 <tr bgcolor="#fcfcfc">
116 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetSampleRate </td>
117 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
118 <td style="font-size: 11px; padding: 5px;">SDL </td>
119 <td style="font-size: 11px; padding: 5px;">AudioBuffer.sampleRate </td>
120 <td style="font-size: 11px; padding: 5px;"> </td>
121 </tr>
122
123 <tr bgcolor="#fcfcfc">
124 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetSampleSize </td>
125 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
126 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
127 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - WebAudio only uses 32-bit float, PPAPI does 16-bit int.</td>
128 <td style="font-size: 11px; padding: 5px;">PPAPI theoretically supports mult iple sampling sizes. In practice, it only supports 16-bit samples. Unfortunately , developers like Unity have requested 16-bit sample sizes. </td>
129 </tr>
130
131 <tr bgcolor="#fcfcfc">
132 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetNumberOfCha nnels </td>
133 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
134 <td style="font-size: 11px; padding: 5px;">SDL </td>
135 <td style="font-size: 11px; padding: 5px;">AudioBuffer.numberOfChannels </td >
136 <td style="font-size: 11px; padding: 5px;"> </td>
137 </tr>
138
139 <tr bgcolor="#fcfcfc">
140 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetDataBuffer </td>
141 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
142 <td style="font-size: 11px; padding: 5px;">SDL </td>
143 <td style="font-size: 11px; padding: 5px;">AudioBuffer.getChannelData </td>
144 <td style="font-size: 11px; padding: 5px;"> </td>
145 </tr>
146
147 <tr bgcolor="#fcfcfc">
148 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetBufferSize </td>
149 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
150 <td style="font-size: 11px; padding: 5px;">SDL </td>
151 <td style="font-size: 11px; padding: 5px;">AudioBuffer.length </td>
152 <td style="font-size: 11px; padding: 5px;"> </td>
153 </tr>
154
155 </table>
156 <h3>PPB_AudioConfig</h3>
157 <table>
158 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
159 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
160 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
161 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
162 <td style="font-size: 11px; padding: 5px;">Web API </td>
163 <td style="font-size: 11px; padding: 5px;">Limitations </td>
164 </tr>
165
166 <tr bgcolor="#fcfcfc">
167 <td style="font-weight: bold; font-size: 11px; padding: 5px;">CreateStereo16 Bit </td>
168 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
169 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
170 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - Only 32-b it float samples supported</td>
171 <td style="font-size: 11px; padding: 5px;"> </td>
172 </tr>
173
174 <tr bgcolor="#fcfcfc">
175 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetSampleRate </td>
176 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
177 <td style="font-size: 11px; padding: 5px;">SDL </td>
178 <td style="font-size: 11px; padding: 5px;">AudioContext.sampleRate </td>
179 <td style="font-size: 11px; padding: 5px;"> </td>
180 </tr>
181
182 <tr bgcolor="#fcfcfc">
183 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetSampleFrame Count </td>
184 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
185 <td style="font-size: 11px; padding: 5px;">SDL </td>
186 <td style="font-size: 11px; padding: 5px;">AudioBuffer.length </td>
187 <td style="font-size: 11px; padding: 5px;"> </td>
188 </tr>
189
190 <tr bgcolor="#fcfcfc">
191 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RecommendSampl eRate </td>
192 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
193 <td style="font-size: 11px; padding: 5px;">SDL </td>
194 <td style="font-size: 11px; padding: 5px;">AudioContext.sampleRate (from def ault construct) </td>
195 <td style="font-size: 11px; padding: 5px;">An AudioContext will have the pre ferred sampling rate by default. </td>
196 </tr>
197
198 <tr bgcolor="#fcfcfc">
199 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RecommendSampl eFrameCount </td>
200 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
201 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
202 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No mechan ism to get a recomended buffer size.</td>
203 <td style="font-size: 11px; padding: 5px;"> </td>
204 </tr>
205
206 </table>
207 <h3>PPB_Console</h3>
208 <table>
209 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
210 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
211 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
212 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
213 <td style="font-size: 11px; padding: 5px;">Web API </td>
214 <td style="font-size: 11px; padding: 5px;">Limitations </td>
215 </tr>
216
217 <tr bgcolor="#fcfcfc">
218 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Log </td>
219 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
220 <td style="font-size: 11px; padding: 5px;">utime </td>
221 <td style="font-size: 11px; padding: 5px;">console.log/warn/error/... </td>
222 <td style="font-size: 11px; padding: 5px;"> </td>
223 </tr>
224
225 <tr bgcolor="#fcfcfc">
226 <td style="font-weight: bold; font-size: 11px; padding: 5px;">LogWithSource </td>
227 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
228 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
229 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
230 <td style="font-size: 11px; padding: 5px;">PPAPI provides a way to override the source filename and line number in a console message.
231 (Though JS API provides way to style text). </td>
232 </tr>
233
234 </table>
235 <h3>PPB_Core</h3>
236 <table>
237 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
238 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
239 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
240 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
241 <td style="font-size: 11px; padding: 5px;">Web API </td>
242 <td style="font-size: 11px; padding: 5px;">Limitations </td>
243 </tr>
244
245 <tr bgcolor="#fcfcfc">
246 <td style="font-weight: bold; font-size: 11px; padding: 5px;">getTime </td>
247 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
248 <td style="font-size: 11px; padding: 5px;">utime </td>
249 <td style="font-size: 11px; padding: 5px;">new Date().getTime() </td>
250 <td style="font-size: 11px; padding: 5px;"> </td>
251 </tr>
252
253 <tr bgcolor="#fcfcfc">
254 <td style="font-weight: bold; font-size: 11px; padding: 5px;">getTimeTicks < /td>
255 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
256 <td style="font-size: 11px; padding: 5px;">utime </td>
257 <td style="font-size: 11px; padding: 5px;">new Date().getTime() </td>
258 <td style="font-size: 11px; padding: 5px;"> </td>
259 </tr>
260
261 <tr bgcolor="#fcfcfc">
262 <td style="font-weight: bold; font-size: 11px; padding: 5px;">IsMainThread < /td>
263 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
264 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
265 <td style="font-size: 11px; padding: 5px;">window.document !== undefined </t d>
266 <td style="font-size: 11px; padding: 5px;"> </td>
267 </tr>
268
269 <tr bgcolor="#fcfcfc">
270 <td style="font-weight: bold; font-size: 11px; padding: 5px;">CallOnMainThre ad </td>
271 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
272 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
273 <td style="font-size: 11px; padding: 5px;">Worker.postMessage + Atomics.wait </td>
274 <td style="font-size: 11px; padding: 5px;">Equivalent synchronization can be built. </td>
275 </tr>
276
277 </table>
278 <h3>PPB_FileIO</h3>
279 <table>
280 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
281 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
282 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
283 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
284 <td style="font-size: 11px; padding: 5px;">Web API </td>
285 <td style="font-size: 11px; padding: 5px;">Limitations </td>
286 </tr>
287
288 <tr bgcolor="#fcfcfc">
289 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
290 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
291 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
292 <td style="font-size: 11px; padding: 5px;">FileReader / FileWrite (Entry.cre ateReader / Entry.createWriter) </td>
293 <td style="font-size: 11px; padding: 5px;">Create and open are used differen tly, but the pieces are of equal power. </td>
294 </tr>
295
296 <tr bgcolor="#fcfcfc">
297 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Open </td>
298 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
299 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
300 <td style="font-size: 11px; padding: 5px;">FileReader / FileWrite (Entry.cre ateReader / Entry.createWriter) </td>
301 <td style="font-size: 11px; padding: 5px;"> </td>
302 </tr>
303
304 <tr bgcolor="#fcfcfc">
305 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Query </td>
306 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
307 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
308 <td style="font-size: 11px; padding: 5px;">Entry.getMetadata </td>
309 <td style="font-size: 11px; padding: 5px;"> </td>
310 </tr>
311
312 <tr bgcolor="#fcfcfc">
313 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Touch </td>
314 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
315 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
316 <td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent, but no access time either.</td>
317 <td style="font-size: 11px; padding: 5px;">Modify time can be bumped by writ ing. </td>
318 </tr>
319
320 <tr bgcolor="#fcfcfc">
321 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Read </td>
322 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
323 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
324 <td style="font-size: 11px; padding: 5px;">Entry.getFile + Blob.slice + File Reader.getBinaryData </td>
325 <td style="font-size: 11px; padding: 5px;">Note, this API requires an extra copy to get a read into linear memory, and may be worse than that if Blob slices are not optimizes to use mmap. </td>
326 </tr>
327
328 <tr bgcolor="#fcfcfc">
329 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Write </td>
330 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
331 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
332 <td style="font-size: 11px; padding: 5px;">FileWriter.seek + FileWriter.writ e 'write*' Events </td>
333 <td style="font-size: 11px; padding: 5px;"> </td>
334 </tr>
335
336 <tr bgcolor="#fcfcfc">
337 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetLength </td >
338 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
339 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
340 <td style="font-size: 11px; padding: 5px;">FileWriter.truncate + 'write*' Ev ents </td>
341 <td style="font-size: 11px; padding: 5px;"> </td>
342 </tr>
343
344 <tr bgcolor="#fcfcfc">
345 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Flush </td>
346 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
347 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
348 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent, no way to flush.</td>
349 <td style="font-size: 11px; padding: 5px;"> </td>
350 </tr>
351
352 <tr bgcolor="#fcfcfc">
353 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Close </td>
354 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
355 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
356 <td style="font-size: 11px; padding: 5px;">No equivalent, open files and dir ectories are implicitly closed. </td>
357 <td style="font-size: 11px; padding: 5px;"> </td>
358 </tr>
359
360 <tr bgcolor="#fcfcfc">
361 <td style="font-weight: bold; font-size: 11px; padding: 5px;">ReadToArray </ td>
362 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
363 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
364 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent.</td>
365 <td style="font-size: 11px; padding: 5px;">Allows multiple subrange reads in parallel. </td>
366 </tr>
367
368 </table>
369 <h3>PPB_FileRef</h3>
370 <table>
371 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
372 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
373 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
374 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
375 <td style="font-size: 11px; padding: 5px;">Web API </td>
376 <td style="font-size: 11px; padding: 5px;">Limitations </td>
377 </tr>
378
379 <tr bgcolor="#fcfcfc">
380 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
381 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
382 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
383 <td style="font-size: 11px; padding: 5px;">Entry.getFile(..., {create:true}) </td>
384 <td style="font-size: 11px; padding: 5px;"> </td>
385 </tr>
386
387 <tr bgcolor="#fcfcfc">
388 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetFileSystemT ype </td>
389 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
390 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
391 <td style="font-size: 11px; padding: 5px;">FileSystem.type </td>
392 <td style="font-size: 11px; padding: 5px;"> </td>
393 </tr>
394
395 <tr bgcolor="#fcfcfc">
396 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetName </td>
397 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
398 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
399 <td style="font-size: 11px; padding: 5px;">Entry.name </td>
400 <td style="font-size: 11px; padding: 5px;"> </td>
401 </tr>
402
403 <tr bgcolor="#fcfcfc">
404 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetPath </td>
405 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
406 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
407 <td style="font-size: 11px; padding: 5px;">Entry.fullPath </td>
408 <td style="font-size: 11px; padding: 5px;"> </td>
409 </tr>
410
411 <tr bgcolor="#fcfcfc">
412 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetParent </td >
413 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
414 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
415 <td style="font-size: 11px; padding: 5px;">Entry.getParent </td>
416 <td style="font-size: 11px; padding: 5px;"> </td>
417 </tr>
418
419 <tr bgcolor="#fcfcfc">
420 <td style="font-weight: bold; font-size: 11px; padding: 5px;">MakeDirectory </td>
421 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
422 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
423 <td style="font-size: 11px; padding: 5px;">Entry.getDirectory(..., {create:t rue}) </td>
424 <td style="font-size: 11px; padding: 5px;"> </td>
425 </tr>
426
427 <tr bgcolor="#fcfcfc">
428 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Touch </td>
429 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
430 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
431 <td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent, but no access time either.</td>
432 <td style="font-size: 11px; padding: 5px;">Modify time can be bumped by writ ing. </td>
433 </tr>
434
435 <tr bgcolor="#fcfcfc">
436 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Delete </td>
437 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
438 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
439 <td style="font-size: 11px; padding: 5px;">Entry.remove </td>
440 <td style="font-size: 11px; padding: 5px;"> </td>
441 </tr>
442
443 <tr bgcolor="#fcfcfc">
444 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Rename </td>
445 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
446 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
447 <td style="font-size: 11px; padding: 5px;">Entry.moveTo </td>
448 <td style="font-size: 11px; padding: 5px;"> </td>
449 </tr>
450
451 <tr bgcolor="#fcfcfc">
452 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Query </td>
453 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
454 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
455 <td style="font-size: 11px; padding: 5px;">Entry.getMetadata </td>
456 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - JS API ha s file size and last modified date, but doesn't have creation date and last acce ssed date.</td>
457 </tr>
458
459 <tr bgcolor="#fcfcfc">
460 <td style="font-weight: bold; font-size: 11px; padding: 5px;">ReadDirectoryE ntries </td>
461 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
462 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
463 <td style="font-size: 11px; padding: 5px;">Directory.readEntries </td>
464 <td style="font-size: 11px; padding: 5px;"> </td>
465 </tr>
466
467 </table>
468 <h3>PPB_FileSystem</h3>
469 <table>
470 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
471 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
472 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
473 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
474 <td style="font-size: 11px; padding: 5px;">Web API </td>
475 <td style="font-size: 11px; padding: 5px;">Limitations </td>
476 </tr>
477
478 <tr bgcolor="#fcfcfc">
479 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
480 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
481 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
482 <td style="font-size: 11px; padding: 5px;">window.requestFileSystem </td>
483 <td style="font-size: 11px; padding: 5px;">JS API does both in one step </td >
484 </tr>
485
486 <tr bgcolor="#fcfcfc">
487 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Open </td>
488 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
489 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
490 <td style="font-size: 11px; padding: 5px;">window.requestFileSystem </td>
491 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - Filesyste ms API is chrome only. IndexedDB has additional performance limitations around s ubrange writes.</td>
492 </tr>
493
494 <tr bgcolor="#fcfcfc">
495 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetType </td>
496 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
497 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
498 <td style="font-size: 11px; padding: 5px;">FileSystem.type </td>
499 <td style="font-size: 11px; padding: 5px;"> </td>
500 </tr>
501
502 </table>
503 <h3>PPB_Fullscreen</h3>
504 <table>
505 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
506 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
507 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
508 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
509 <td style="font-size: 11px; padding: 5px;">Web API </td>
510 <td style="font-size: 11px; padding: 5px;">Limitations </td>
511 </tr>
512
513 <tr bgcolor="#fcfcfc">
514 <td style="font-weight: bold; font-size: 11px; padding: 5px;">IsFullScreen < /td>
515 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
516 <td style="font-size: 11px; padding: 5px;">html5.h </td>
517 <td style="font-size: 11px; padding: 5px;">Document.fullscreenEnabled </td>
518 <td style="font-size: 11px; padding: 5px;"> </td>
519 </tr>
520
521 <tr bgcolor="#fcfcfc">
522 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetFullscreen </td>
523 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
524 <td style="font-size: 11px; padding: 5px;">html5.h </td>
525 <td style="font-size: 11px; padding: 5px;">Document.requestFullscreen </td>
526 <td style="font-size: 11px; padding: 5px;"> </td>
527 </tr>
528
529 <tr bgcolor="#fcfcfc">
530 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetScreenSize </td>
531 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
532 <td style="font-size: 11px; padding: 5px;">html5.h </td>
533 <td style="font-size: 11px; padding: 5px;">Document.exitFullscreen </td>
534 <td style="font-size: 11px; padding: 5px;"> </td>
535 </tr>
536
537 </table>
538 <h3>PPB_Gamepad</h3>
539 <table>
540 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
541 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
542 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
543 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
544 <td style="font-size: 11px; padding: 5px;">Web API </td>
545 <td style="font-size: 11px; padding: 5px;">Limitations </td>
546 </tr>
547
548 <tr bgcolor="#fcfcfc">
549 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Sample </td>
550 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
551 <td style="font-size: 11px; padding: 5px;">SDL </td>
552 <td style="font-size: 11px; padding: 5px;">Gamepad.* </td>
553 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - PPAPI exp oses a timestamp value, but the JS API doesn't provide this (though it is speced ).</td>
554 </tr>
555
556 </table>
557 <h3>PPB_Graphics2D</h3>
558 <table>
559 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
560 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
561 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
562 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
563 <td style="font-size: 11px; padding: 5px;">Web API </td>
564 <td style="font-size: 11px; padding: 5px;">Limitations </td>
565 </tr>
566
567 <tr bgcolor="#fcfcfc">
568 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
569 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
570 <td style="font-size: 11px; padding: 5px;">SDL </td>
571 <td style="font-size: 11px; padding: 5px;">Canvas.getContext('2d') </td>
572 <td style="font-size: 11px; padding: 5px;"> </td>
573 </tr>
574
575 <tr bgcolor="#fcfcfc">
576 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Describe </td>
577 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
578 <td style="font-size: 11px; padding: 5px;">SDL </td>
579 <td style="font-size: 11px; padding: 5px;">Canvas.clientWidth + Canvas.clien tHeight </td>
580 <td style="font-size: 11px; padding: 5px;"> </td>
581 </tr>
582
583 <tr bgcolor="#fcfcfc">
584 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PaintImageData </td>
585 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
586 <td style="font-size: 11px; padding: 5px;">SDL </td>
587 <td style="font-size: 11px; padding: 5px;">CanvasRenderingContext2d.putImage Data </td>
588 <td style="font-size: 11px; padding: 5px;"> </td>
589 </tr>
590
591 <tr bgcolor="#fcfcfc">
592 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Scroll </td>
593 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
594 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
595 <td style="font-size: 11px; padding: 5px;">CanvasRenderingContext2d.scrollIn toView </td>
596 <td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - Not an exact match (might have to resort to getImageData + putImageData which w ill be slow). Not a cross-browser standard.</td>
597 </tr>
598
599 <tr bgcolor="#fcfcfc">
600 <td style="font-weight: bold; font-size: 11px; padding: 5px;">ReplaceContent s </td>
601 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
602 <td style="font-size: 11px; padding: 5px;">SDL </td>
603 <td style="font-size: 11px; padding: 5px;">CanvasRenderingContext2d.drawImag e </td>
604 <td style="font-size: 11px; padding: 5px;"> </td>
605 </tr>
606
607 <tr bgcolor="#fcfcfc">
608 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Flush </td>
609 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
610 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
611 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - Only retu rning to the event loop triggers the flush.</td>
612 <td style="font-size: 11px; padding: 5px;"> </td>
613 </tr>
614
615 <tr bgcolor="#fcfcfc">
616 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetScale </td>
617 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
618 <td style="font-size: 11px; padding: 5px;">SDL </td>
619 <td style="font-size: 11px; padding: 5px;">CanvasRenderingContext2d.scale </ td>
620 <td style="font-size: 11px; padding: 5px;"> </td>
621 </tr>
622
623 <tr bgcolor="#fcfcfc">
624 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetScale </td>
625 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
626 <td style="font-size: 11px; padding: 5px;">SDL </td>
627 <td style="font-size: 11px; padding: 5px;">CanvasRenderingContext2d.currentT ransform </td>
628 <td style="font-size: 11px; padding: 5px;"> </td>
629 </tr>
630
631 <tr bgcolor="#fcfcfc">
632 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetLayerTransf orm </td>
633 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
634 <td style="font-size: 11px; padding: 5px;">SDL </td>
635 <td style="font-size: 11px; padding: 5px;">CanvasRenderingContext2d.setTrans form
636 CanvasRenderingContext2d.scale
637 CanvasRenderingContext2d.translate </td>
638 <td style="font-size: 11px; padding: 5px;"> </td>
639 </tr>
640
641 </table>
642 <h3>PPB_Graphics3D</h3>
643 <table>
644 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
645 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
646 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
647 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
648 <td style="font-size: 11px; padding: 5px;">Web API </td>
649 <td style="font-size: 11px; padding: 5px;">Limitations </td>
650 </tr>
651
652 <tr bgcolor="#fcfcfc">
653 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetAttribMaxVa lue </td>
654 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
655 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
656 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - Canvas.ge tContext lets you set booleans requesting depth / stencil buffers of certain siz es, but does not have a way to query what's possible (or get anything other than on or off for each)</td>
657 <td style="font-size: 11px; padding: 5px;"> </td>
658 </tr>
659
660 <tr bgcolor="#fcfcfc">
661 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
662 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
663 <td style="font-size: 11px; padding: 5px;">SDL </td>
664 <td style="font-size: 11px; padding: 5px;">Canvas.getContext </td>
665 <td style="font-size: 11px; padding: 5px;"> </td>
666 </tr>
667
668 <tr bgcolor="#fcfcfc">
669 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetAttribs </t d>
670 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
671 <td style="font-size: 11px; padding: 5px;">SDL </td>
672 <td style="font-size: 11px; padding: 5px;">WebGLRenderingContext.getContextA ttributes </td>
673 <td style="font-size: 11px; padding: 5px;"> </td>
674 </tr>
675
676 <tr bgcolor="#fcfcfc">
677 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetAttribs </t d>
678 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
679 <td style="font-size: 11px; padding: 5px;">SDL </td>
680 <td style="font-size: 11px; padding: 5px;">Canvas.getContext(.., OPTIONS) </ td>
681 <td style="font-size: 11px; padding: 5px;"> </td>
682 </tr>
683
684 <tr bgcolor="#fcfcfc">
685 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetError </td>
686 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
687 <td style="font-size: 11px; padding: 5px;">SDL </td>
688 <td style="font-size: 11px; padding: 5px;">WebGLRenderingContext.getError </ td>
689 <td style="font-size: 11px; padding: 5px;"> </td>
690 </tr>
691
692 <tr bgcolor="#fcfcfc">
693 <td style="font-weight: bold; font-size: 11px; padding: 5px;">ResizeBuffers </td>
694 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
695 <td style="font-size: 11px; padding: 5px;">SDL </td>
696 <td style="font-size: 11px; padding: 5px;">&lt;Canvas&gt;.width = w; &lt;Can vas&gt;.height = h; </td>
697 <td style="font-size: 11px; padding: 5px;"> </td>
698 </tr>
699
700 <tr bgcolor="#fcfcfc">
701 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SwapBuffers </ td>
702 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
703 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
704 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No way to explicitly flip a frame, must return to the event loop.</td>
705 <td style="font-size: 11px; padding: 5px;"> </td>
706 </tr>
707
708 </table>
709 <h3>PPB_ImageData</h3>
710 <table>
711 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
712 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
713 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
714 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
715 <td style="font-size: 11px; padding: 5px;">Web API </td>
716 <td style="font-size: 11px; padding: 5px;">Limitations </td>
717 </tr>
718
719 <tr bgcolor="#fcfcfc">
720 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetNativeImage DataFormat </td>
721 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
722 <td style="font-size: 11px; padding: 5px;">SDL </td>
723 <td style="font-size: 11px; padding: 5px;">ImageData mandates RGBA order </t d>
724 <td style="font-size: 11px; padding: 5px;"> </td>
725 </tr>
726
727 <tr bgcolor="#fcfcfc">
728 <td style="font-weight: bold; font-size: 11px; padding: 5px;">IsImageDataFor matSupported </td>
729 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
730 <td style="font-size: 11px; padding: 5px;">SDL </td>
731 <td style="font-size: 11px; padding: 5px;">ImageData mandates RGBA order </t d>
732 <td style="font-size: 11px; padding: 5px;"> </td>
733 </tr>
734
735 <tr bgcolor="#fcfcfc">
736 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
737 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
738 <td style="font-size: 11px; padding: 5px;">SDL </td>
739 <td style="font-size: 11px; padding: 5px;">CanvasRenderingContext2d.createIm ageData </td>
740 <td style="font-size: 11px; padding: 5px;"> </td>
741 </tr>
742
743 <tr bgcolor="#fcfcfc">
744 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Describe </td>
745 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
746 <td style="font-size: 11px; padding: 5px;">SDL </td>
747 <td style="font-size: 11px; padding: 5px;">ImageData never has a stride </td >
748 <td style="font-size: 11px; padding: 5px;"> </td>
749 </tr>
750
751 <tr bgcolor="#fcfcfc">
752 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Map </td>
753 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
754 <td style="font-size: 11px; padding: 5px;">SDL </td>
755 <td style="font-size: 11px; padding: 5px;">ImageData.data </td>
756 <td style="font-size: 11px; padding: 5px;"> </td>
757 </tr>
758
759 <tr bgcolor="#fcfcfc">
760 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Unmap </td>
761 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
762 <td style="font-size: 11px; padding: 5px;">SDL </td>
763 <td style="font-size: 11px; padding: 5px;">ImageData.data </td>
764 <td style="font-size: 11px; padding: 5px;"> </td>
765 </tr>
766
767 </table>
768 <h3>PPB_InputEvent</h3>
769 <table>
770 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
771 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
772 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
773 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
774 <td style="font-size: 11px; padding: 5px;">Web API </td>
775 <td style="font-size: 11px; padding: 5px;">Limitations </td>
776 </tr>
777
778 <tr bgcolor="#fcfcfc">
779 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RequestInputEv ents </td>
780 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
781 <td style="font-size: 11px; padding: 5px;">SDL </td>
782 <td style="font-size: 11px; padding: 5px;">No direct equivalent </td>
783 <td style="font-size: 11px; padding: 5px;">The lack of this feature is proba bly less relevant as JS / Wasm runs on the main thread and can more cheaply filt er events without incurring a cross process round-trip. </td>
784 </tr>
785
786 <tr bgcolor="#fcfcfc">
787 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RequestFilteri ngInputEvents </td>
788 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
789 <td style="font-size: 11px; padding: 5px;">SDL </td>
790 <td style="font-size: 11px; padding: 5px;">mouse* key* wheel* touch* composi tion* Events </td>
791 <td style="font-size: 11px; padding: 5px;"> </td>
792 </tr>
793
794 <tr bgcolor="#fcfcfc">
795 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
796 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
797 <td style="font-size: 11px; padding: 5px;">SDL </td>
798 <td style="font-size: 11px; padding: 5px;">Element.addEventListener </td>
799 <td style="font-size: 11px; padding: 5px;"> </td>
800 </tr>
801
802 <tr bgcolor="#fcfcfc">
803 <td style="font-weight: bold; font-size: 11px; padding: 5px;">ClearInputEven tRequest </td>
804 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
805 <td style="font-size: 11px; padding: 5px;">SDL </td>
806 <td style="font-size: 11px; padding: 5px;">Element.removeEventListener </td>
807 <td style="font-size: 11px; padding: 5px;"> </td>
808 </tr>
809
810 <tr bgcolor="#fcfcfc">
811 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetType </td>
812 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
813 <td style="font-size: 11px; padding: 5px;">SDL </td>
814 <td style="font-size: 11px; padding: 5px;">Event class descendants </td>
815 <td style="font-size: 11px; padding: 5px;"> </td>
816 </tr>
817
818 <tr bgcolor="#fcfcfc">
819 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetTimeStamp < /td>
820 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
821 <td style="font-size: 11px; padding: 5px;">SDL </td>
822 <td style="font-size: 11px; padding: 5px;">Event.timeStamp </td>
823 <td style="font-size: 11px; padding: 5px;"> </td>
824 </tr>
825
826 <tr bgcolor="#fcfcfc">
827 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetModifiers < /td>
828 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
829 <td style="font-size: 11px; padding: 5px;">SDL </td>
830 <td style="font-size: 11px; padding: 5px;">*Event.altKey/shiftKey/metaKey/ct rlKey </td>
831 <td style="font-size: 11px; padding: 5px;"> </td>
832 </tr>
833
834 </table>
835 <h3>PPB_MouseInputEvent</h3>
836 <table>
837 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
838 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
839 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
840 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
841 <td style="font-size: 11px; padding: 5px;">Web API </td>
842 <td style="font-size: 11px; padding: 5px;">Limitations </td>
843 </tr>
844
845 <tr bgcolor="#fcfcfc">
846 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
847 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
848 <td style="font-size: 11px; padding: 5px;">SDL </td>
849 <td style="font-size: 11px; padding: 5px;">MouseEvent </td>
850 <td style="font-size: 11px; padding: 5px;"> </td>
851 </tr>
852
853 <tr bgcolor="#fcfcfc">
854 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetButton </td >
855 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
856 <td style="font-size: 11px; padding: 5px;">SDL </td>
857 <td style="font-size: 11px; padding: 5px;">MouseEvent.button </td>
858 <td style="font-size: 11px; padding: 5px;"> </td>
859 </tr>
860
861 <tr bgcolor="#fcfcfc">
862 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetPosition </ td>
863 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
864 <td style="font-size: 11px; padding: 5px;">SDL </td>
865 <td style="font-size: 11px; padding: 5px;">MouseEvent.client*/page*/offset* </td>
866 <td style="font-size: 11px; padding: 5px;"> </td>
867 </tr>
868
869 <tr bgcolor="#fcfcfc">
870 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetClickCount </td>
871 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
872 <td style="font-size: 11px; padding: 5px;">SDL </td>
873 <td style="font-size: 11px; padding: 5px;">dblclick' vs 'mousedown' Events < /td>
874 <td style="font-size: 11px; padding: 5px;"> </td>
875 </tr>
876
877 <tr bgcolor="#fcfcfc">
878 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetMovement </ td>
879 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
880 <td style="font-size: 11px; padding: 5px;">SDL </td>
881 <td style="font-size: 11px; padding: 5px;">MouseEvent.movement* </td>
882 <td style="font-size: 11px; padding: 5px;"> </td>
883 </tr>
884
885 </table>
886 <h3>PPB_WheelInputEvent</h3>
887 <table>
888 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
889 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
890 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
891 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
892 <td style="font-size: 11px; padding: 5px;">Web API </td>
893 <td style="font-size: 11px; padding: 5px;">Limitations </td>
894 </tr>
895
896 <tr bgcolor="#fcfcfc">
897 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
898 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
899 <td style="font-size: 11px; padding: 5px;">SDL </td>
900 <td style="font-size: 11px; padding: 5px;">WheelEvent </td>
901 <td style="font-size: 11px; padding: 5px;"> </td>
902 </tr>
903
904 <tr bgcolor="#fcfcfc">
905 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetDelta </td>
906 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
907 <td style="font-size: 11px; padding: 5px;">SDL </td>
908 <td style="font-size: 11px; padding: 5px;">WheelEvent.delta* </td>
909 <td style="font-size: 11px; padding: 5px;"> </td>
910 </tr>
911
912 <tr bgcolor="#fcfcfc">
913 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetTicks </td>
914 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
915 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
916 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - deltaMode kinda of contains this info, but incompletely.</td>
917 <td style="font-size: 11px; padding: 5px;"> </td>
918 </tr>
919
920 <tr bgcolor="#fcfcfc">
921 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetScrollByPag e </td>
922 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
923 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
924 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - deltaMode kinda of contains this info, but incompletely.</td>
925 <td style="font-size: 11px; padding: 5px;"> </td>
926 </tr>
927
928 </table>
929 <h3>PPB_KeyboardInputEvent</h3>
930 <table>
931 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
932 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
933 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
934 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
935 <td style="font-size: 11px; padding: 5px;">Web API </td>
936 <td style="font-size: 11px; padding: 5px;">Limitations </td>
937 </tr>
938
939 <tr bgcolor="#fcfcfc">
940 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
941 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
942 <td style="font-size: 11px; padding: 5px;">SDL </td>
943 <td style="font-size: 11px; padding: 5px;">KeyboardEvent </td>
944 <td style="font-size: 11px; padding: 5px;"> </td>
945 </tr>
946
947 <tr bgcolor="#fcfcfc">
948 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetKeyCode </t d>
949 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
950 <td style="font-size: 11px; padding: 5px;">SDL </td>
951 <td style="font-size: 11px; padding: 5px;">KeyboardEvent.keyCode </td>
952 <td style="font-size: 11px; padding: 5px;"> </td>
953 </tr>
954
955 <tr bgcolor="#fcfcfc">
956 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetCharacterTe xt </td>
957 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
958 <td style="font-size: 11px; padding: 5px;">SDL </td>
959 <td style="font-size: 11px; padding: 5px;">KeyboardEvent.key </td>
960 <td style="font-size: 11px; padding: 5px;"> </td>
961 </tr>
962
963 <tr bgcolor="#fcfcfc">
964 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetCode </td>
965 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
966 <td style="font-size: 11px; padding: 5px;">SDL </td>
967 <td style="font-size: 11px; padding: 5px;">KeyboardEvent.code </td>
968 <td style="font-size: 11px; padding: 5px;"> </td>
969 </tr>
970
971 </table>
972 <h3>PPB_TouchInputEvent</h3>
973 <table>
974 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
975 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
976 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
977 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
978 <td style="font-size: 11px; padding: 5px;">Web API </td>
979 <td style="font-size: 11px; padding: 5px;">Limitations </td>
980 </tr>
981
982 <tr bgcolor="#fcfcfc">
983 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
984 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
985 <td style="font-size: 11px; padding: 5px;">SDL </td>
986 <td style="font-size: 11px; padding: 5px;">TouchEvent </td>
987 <td style="font-size: 11px; padding: 5px;"> </td>
988 </tr>
989
990 <tr bgcolor="#fcfcfc">
991 <td style="font-weight: bold; font-size: 11px; padding: 5px;">AddTouchPoint </td>
992 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
993 <td style="font-size: 11px; padding: 5px;">SDL </td>
994 <td style="font-size: 11px; padding: 5px;">TouchEvent.touches.push </td>
995 <td style="font-size: 11px; padding: 5px;"> </td>
996 </tr>
997
998 <tr bgcolor="#fcfcfc">
999 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetTouchCount </td>
1000 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1001 <td style="font-size: 11px; padding: 5px;">SDL </td>
1002 <td style="font-size: 11px; padding: 5px;">TouchEvent.touches.length </td>
1003 <td style="font-size: 11px; padding: 5px;"> </td>
1004 </tr>
1005
1006 <tr bgcolor="#fcfcfc">
1007 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetTouchByInde x </td>
1008 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1009 <td style="font-size: 11px; padding: 5px;">SDL </td>
1010 <td style="font-size: 11px; padding: 5px;">TouchEvent.touches[i] </td>
1011 <td style="font-size: 11px; padding: 5px;"> </td>
1012 </tr>
1013
1014 <tr bgcolor="#fcfcfc">
1015 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetTouchById < /td>
1016 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1017 <td style="font-size: 11px; padding: 5px;">SDL </td>
1018 <td style="font-size: 11px; padding: 5px;">Touch.indentifer (to figure this out yourself) </td>
1019 <td style="font-size: 11px; padding: 5px;"> </td>
1020 </tr>
1021
1022 </table>
1023 <h3>PPB_IMEInputEvent</h3>
1024 <table>
1025 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
1026 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
1027 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
1028 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
1029 <td style="font-size: 11px; padding: 5px;">Web API </td>
1030 <td style="font-size: 11px; padding: 5px;">Limitations </td>
1031 </tr>
1032
1033 <tr bgcolor="#fcfcfc">
1034 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
1035 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1036 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1037 <td style="font-size: 11px; padding: 5px;">CompositionEvent </td>
1038 <td style="font-size: 11px; padding: 5px;"> </td>
1039 </tr>
1040
1041 <tr bgcolor="#fcfcfc">
1042 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetText </td>
1043 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1044 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1045 <td style="font-size: 11px; padding: 5px;">CompositionEvent.data </td>
1046 <td style="font-size: 11px; padding: 5px;"> </td>
1047 </tr>
1048
1049 <tr bgcolor="#fcfcfc">
1050 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetSegmentNumb er </td>
1051 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1052 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1053 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
1054 <td style="font-size: 11px; padding: 5px;"> </td>
1055 </tr>
1056
1057 <tr bgcolor="#fcfcfc">
1058 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetSegmentOffs et </td>
1059 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1060 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1061 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
1062 <td style="font-size: 11px; padding: 5px;"> </td>
1063 </tr>
1064
1065 <tr bgcolor="#fcfcfc">
1066 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetTargetSegme nt </td>
1067 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1068 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1069 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
1070 <td style="font-size: 11px; padding: 5px;"> </td>
1071 </tr>
1072
1073 <tr bgcolor="#fcfcfc">
1074 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetSelection < /td>
1075 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1076 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1077 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
1078 <td style="font-size: 11px; padding: 5px;"> </td>
1079 </tr>
1080
1081 </table>
1082 <h3>PPB_Instance</h3>
1083 <table>
1084 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
1085 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
1086 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
1087 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
1088 <td style="font-size: 11px; padding: 5px;">Web API </td>
1089 <td style="font-size: 11px; padding: 5px;">Limitations </td>
1090 </tr>
1091
1092 <tr bgcolor="#fcfcfc">
1093 <td style="font-weight: bold; font-size: 11px; padding: 5px;">BindGraphics < /td>
1094 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1095 <td style="font-size: 11px; padding: 5px;">SDL </td>
1096 <td style="font-size: 11px; padding: 5px;">Canvas.getContext (moot as bindin g is automatic). </td>
1097 <td style="font-size: 11px; padding: 5px;"> </td>
1098 </tr>
1099
1100 <tr bgcolor="#fcfcfc">
1101 <td style="font-weight: bold; font-size: 11px; padding: 5px;">IsFullFrame </ td>
1102 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1103 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1104 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent to mime type handlers.</td>
1105 <td style="font-size: 11px; padding: 5px;">NaCl apps can be registered to ha ndle a particular mime type and own the whole document. </td>
1106 </tr>
1107
1108 </table>
1109 <h3>PPB_MediaStreamAudioTrack</h3>
1110 <table>
1111 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
1112 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
1113 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
1114 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
1115 <td style="font-size: 11px; padding: 5px;">Web API </td>
1116 <td style="font-size: 11px; padding: 5px;">Limitations </td>
1117 </tr>
1118
1119 <tr bgcolor="#fcfcfc">
1120 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Configure </td >
1121 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1122 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1123 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
1124 <td style="font-size: 11px; padding: 5px;"> </td>
1125 </tr>
1126
1127 <tr bgcolor="#fcfcfc">
1128 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetAttrib </td >
1129 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1130 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1131 <td style="font-size: 11px; padding: 5px;">MediaStreamSettings.channelCount </td>
1132 <td style="font-size: 11px; padding: 5px;"> </td>
1133 </tr>
1134
1135 <tr bgcolor="#fcfcfc">
1136 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
1137 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1138 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1139 <td style="font-size: 11px; padding: 5px;">MediaStreamSettings.sampleSize </ td>
1140 <td style="font-size: 11px; padding: 5px;"> </td>
1141 </tr>
1142
1143 <tr bgcolor="#fcfcfc">
1144 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
1145 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1146 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1147 <td style="font-size: 11px; padding: 5px;">MediaStreamSettings.sampleRate </ td>
1148 <td style="font-size: 11px; padding: 5px;"> </td>
1149 </tr>
1150
1151 <tr bgcolor="#fcfcfc">
1152 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
1153 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1154 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1155 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - no equiva lent to PP_MEDIASTREAMAUDIOTRACK_ATTRIB_BUFFERS</td>
1156 <td style="font-size: 11px; padding: 5px;"> </td>
1157 </tr>
1158
1159 <tr bgcolor="#fcfcfc">
1160 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
1161 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1162 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1163 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - no equiva lent to PP_MEDIASTREAMAUDIOTRACK_ATTRIB_DURATION</td>
1164 <td style="font-size: 11px; padding: 5px;"> </td>
1165 </tr>
1166
1167 <tr bgcolor="#fcfcfc">
1168 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetId </td>
1169 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1170 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1171 <td style="font-size: 11px; padding: 5px;">MediaStream.id </td>
1172 <td style="font-size: 11px; padding: 5px;"> </td>
1173 </tr>
1174
1175 <tr bgcolor="#fcfcfc">
1176 <td style="font-weight: bold; font-size: 11px; padding: 5px;">HasEnded </td>
1177 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1178 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1179 <td style="font-size: 11px; padding: 5px;">MediaStream.ended </td>
1180 <td style="font-size: 11px; padding: 5px;"> </td>
1181 </tr>
1182
1183 <tr bgcolor="#fcfcfc">
1184 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetBuffer </td >
1185 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1186 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1187 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
1188 <td style="font-size: 11px; padding: 5px;"> </td>
1189 </tr>
1190
1191 <tr bgcolor="#fcfcfc">
1192 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RecycleBuffer </td>
1193 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1194 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1195 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
1196 <td style="font-size: 11px; padding: 5px;"> </td>
1197 </tr>
1198
1199 <tr bgcolor="#fcfcfc">
1200 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Close </td>
1201 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1202 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1203 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
1204 <td style="font-size: 11px; padding: 5px;"> </td>
1205 </tr>
1206
1207 </table>
1208 <h3>PPB_MediaStreamVideoTrack</h3>
1209 <table>
1210 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
1211 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
1212 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
1213 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
1214 <td style="font-size: 11px; padding: 5px;">Web API </td>
1215 <td style="font-size: 11px; padding: 5px;">Limitations </td>
1216 </tr>
1217
1218 <tr bgcolor="#fcfcfc">
1219 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
1220 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1221 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1222 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
1223 <td style="font-size: 11px; padding: 5px;">Ability to create synthetic strea m. </td>
1224 </tr>
1225
1226 <tr bgcolor="#fcfcfc">
1227 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Configure </td >
1228 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1229 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1230 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
1231 <td style="font-size: 11px; padding: 5px;"> </td>
1232 </tr>
1233
1234 <tr bgcolor="#fcfcfc">
1235 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetAttrib </td >
1236 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1237 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1238 <td style="font-size: 11px; padding: 5px;">MediaStreamSettings.width </td>
1239 <td style="font-size: 11px; padding: 5px;"> </td>
1240 </tr>
1241
1242 <tr bgcolor="#fcfcfc">
1243 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
1244 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1245 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1246 <td style="font-size: 11px; padding: 5px;">MediaStreamSettings.height </td>
1247 <td style="font-size: 11px; padding: 5px;"> </td>
1248 </tr>
1249
1250 <tr bgcolor="#fcfcfc">
1251 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
1252 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1253 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1254 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - no equiva lent to PP_MEDIASTREAMVIDEOTRACK_ATTRIB_BUFFERED_FRAMES</td>
1255 <td style="font-size: 11px; padding: 5px;"> </td>
1256 </tr>
1257
1258 <tr bgcolor="#fcfcfc">
1259 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
1260 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1261 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1262 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - no equiva lent to PP_MEDIASTREAMVIDEOTRACK_ATTRIB_FORMAT</td>
1263 <td style="font-size: 11px; padding: 5px;"> </td>
1264 </tr>
1265
1266 <tr bgcolor="#fcfcfc">
1267 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetId </td>
1268 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1269 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1270 <td style="font-size: 11px; padding: 5px;">MediaStream.id </td>
1271 <td style="font-size: 11px; padding: 5px;"> </td>
1272 </tr>
1273
1274 <tr bgcolor="#fcfcfc">
1275 <td style="font-weight: bold; font-size: 11px; padding: 5px;">HasEnded </td>
1276 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1277 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1278 <td style="font-size: 11px; padding: 5px;">MediaStream.ended </td>
1279 <td style="font-size: 11px; padding: 5px;"> </td>
1280 </tr>
1281
1282 <tr bgcolor="#fcfcfc">
1283 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetFrame </td>
1284 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1285 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1286 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
1287 <td style="font-size: 11px; padding: 5px;"> </td>
1288 </tr>
1289
1290 <tr bgcolor="#fcfcfc">
1291 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RecycleFrame < /td>
1292 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1293 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1294 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
1295 <td style="font-size: 11px; padding: 5px;"> </td>
1296 </tr>
1297
1298 <tr bgcolor="#fcfcfc">
1299 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Close </td>
1300 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1301 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1302 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
1303 <td style="font-size: 11px; padding: 5px;"> </td>
1304 </tr>
1305
1306 <tr bgcolor="#fcfcfc">
1307 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetEmptyFrame </td>
1308 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1309 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1310 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
1311 <td style="font-size: 11px; padding: 5px;"> </td>
1312 </tr>
1313
1314 <tr bgcolor="#fcfcfc">
1315 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PutFrame </td>
1316 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1317 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1318 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
1319 <td style="font-size: 11px; padding: 5px;"> </td>
1320 </tr>
1321
1322 </table>
1323 <h3>PPB_MessageLoop</h3>
1324 <table>
1325 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
1326 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
1327 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
1328 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
1329 <td style="font-size: 11px; padding: 5px;">Web API </td>
1330 <td style="font-size: 11px; padding: 5px;">Limitations </td>
1331 </tr>
1332
1333 <tr bgcolor="#fcfcfc">
1334 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
1335 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1336 <td style="font-size: 11px; padding: 5px;">N/A </td>
1337 <td style="font-size: 11px; padding: 5px;">Mostly moot, workers get an impli cit event loop. </td>
1338 <td style="font-size: 11px; padding: 5px;"> </td>
1339 </tr>
1340
1341 <tr bgcolor="#fcfcfc">
1342 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetForMainThre ad </td>
1343 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1344 <td style="font-size: 11px; padding: 5px;">N/A </td>
1345 <td style="font-size: 11px; padding: 5px;">Mostly moot, workers get an impli cit event loop. </td>
1346 <td style="font-size: 11px; padding: 5px;"> </td>
1347 </tr>
1348
1349 <tr bgcolor="#fcfcfc">
1350 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetCurrent </t d>
1351 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1352 <td style="font-size: 11px; padding: 5px;">N/A </td>
1353 <td style="font-size: 11px; padding: 5px;">Mostly moot, workers get an impli cit event loop. </td>
1354 <td style="font-size: 11px; padding: 5px;"> </td>
1355 </tr>
1356
1357 <tr bgcolor="#fcfcfc">
1358 <td style="font-weight: bold; font-size: 11px; padding: 5px;">AttachToCurren tThread </td>
1359 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1360 <td style="font-size: 11px; padding: 5px;">N/A </td>
1361 <td style="font-size: 11px; padding: 5px;">Mostly moot, workers get an impli cit event loop. </td>
1362 <td style="font-size: 11px; padding: 5px;"> </td>
1363 </tr>
1364
1365 <tr bgcolor="#fcfcfc">
1366 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Run </td>
1367 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1368 <td style="font-size: 11px; padding: 5px;">N/A </td>
1369 <td style="font-size: 11px; padding: 5px;">Mostly moot, workers get an impli cit event loop. </td>
1370 <td style="font-size: 11px; padding: 5px;"> </td>
1371 </tr>
1372
1373 <tr bgcolor="#fcfcfc">
1374 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PostWork </td>
1375 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1376 <td style="font-size: 11px; padding: 5px;">N/A </td>
1377 <td style="font-size: 11px; padding: 5px;">Mostly moot, workers get an impli cit event loop. </td>
1378 <td style="font-size: 11px; padding: 5px;"> </td>
1379 </tr>
1380
1381 <tr bgcolor="#fcfcfc">
1382 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PostQuit </td>
1383 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1384 <td style="font-size: 11px; padding: 5px;">N/A </td>
1385 <td style="font-size: 11px; padding: 5px;">Mostly moot, workers get an impli cit event loop. </td>
1386 <td style="font-size: 11px; padding: 5px;"> </td>
1387 </tr>
1388
1389 </table>
1390 <h3>PPB_Messaging</h3>
1391 <table>
1392 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
1393 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
1394 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
1395 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
1396 <td style="font-size: 11px; padding: 5px;">Web API </td>
1397 <td style="font-size: 11px; padding: 5px;">Limitations </td>
1398 </tr>
1399
1400 <tr bgcolor="#fcfcfc">
1401 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PostMessage </ td>
1402 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1403 <td style="font-size: 11px; padding: 5px;">N/A </td>
1404 <td style="font-size: 11px; padding: 5px;">Window.postMessage </td>
1405 <td style="font-size: 11px; padding: 5px;"> </td>
1406 </tr>
1407
1408 <tr bgcolor="#fcfcfc">
1409 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RegisterMessag eHandler </td>
1410 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1411 <td style="font-size: 11px; padding: 5px;">N/A </td>
1412 <td style="font-size: 11px; padding: 5px;">Window.addEventListener </td>
1413 <td style="font-size: 11px; padding: 5px;"> </td>
1414 </tr>
1415
1416 <tr bgcolor="#fcfcfc">
1417 <td style="font-weight: bold; font-size: 11px; padding: 5px;">UnregisterMess ageHandler </td>
1418 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1419 <td style="font-size: 11px; padding: 5px;">N/A </td>
1420 <td style="font-size: 11px; padding: 5px;">Window.removeEventListener </td>
1421 <td style="font-size: 11px; padding: 5px;"> </td>
1422 </tr>
1423
1424 </table>
1425 <h3>PPB_MouseCursor</h3>
1426 <table>
1427 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
1428 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
1429 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
1430 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
1431 <td style="font-size: 11px; padding: 5px;">Web API </td>
1432 <td style="font-size: 11px; padding: 5px;">Limitations </td>
1433 </tr>
1434
1435 <tr bgcolor="#fcfcfc">
1436 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetCursor </td >
1437 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1438 <td style="font-size: 11px; padding: 5px;">SDL </td>
1439 <td style="font-size: 11px; padding: 5px;">Element.style.cursor </td>
1440 <td style="font-size: 11px; padding: 5px;">Same set of stock cursors are sup ported.
1441 Custom cursors can be done with url(..).
1442 Dynamic custom cursors can be done with data URIs.
1443 CSS3 supports specifying the hotspot. </td>
1444 </tr>
1445
1446 </table>
1447 <h3>PPB_MouseLock</h3>
1448 <table>
1449 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
1450 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
1451 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
1452 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
1453 <td style="font-size: 11px; padding: 5px;">Web API </td>
1454 <td style="font-size: 11px; padding: 5px;">Limitations </td>
1455 </tr>
1456
1457 <tr bgcolor="#fcfcfc">
1458 <td style="font-weight: bold; font-size: 11px; padding: 5px;">LockMouse </td >
1459 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1460 <td style="font-size: 11px; padding: 5px;">SDL </td>
1461 <td style="font-size: 11px; padding: 5px;">Element.requestPointerLock </td>
1462 <td style="font-size: 11px; padding: 5px;"> </td>
1463 </tr>
1464
1465 <tr bgcolor="#fcfcfc">
1466 <td style="font-weight: bold; font-size: 11px; padding: 5px;">UnlockMouse </ td>
1467 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1468 <td style="font-size: 11px; padding: 5px;">SDL </td>
1469 <td style="font-size: 11px; padding: 5px;">Element.exitPointerLock </td>
1470 <td style="font-size: 11px; padding: 5px;"> </td>
1471 </tr>
1472
1473 </table>
1474 <h3>PPB_OpenGLES2</h3>
1475 <table>
1476 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
1477 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
1478 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
1479 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
1480 <td style="font-size: 11px; padding: 5px;">Web API </td>
1481 <td style="font-size: 11px; padding: 5px;">Limitations </td>
1482 </tr>
1483
1484 <tr bgcolor="#fcfcfc">
1485 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Several Method s </td>
1486 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1487 <td style="font-size: 11px; padding: 5px;">OpenGLES </td>
1488 <td style="font-size: 11px; padding: 5px;">Close to WebGL 1.0 in functionali ty. </td>
1489 <td style="font-size: 11px; padding: 5px;">TODO(bradnelson): more detail </t d>
1490 </tr>
1491
1492 <tr bgcolor="#fcfcfc">
1493 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
1494 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
1495 <td style="font-size: 11px; padding: 5px;"> </td>
1496 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - Without o ffscreen canvas, rendering must be done on the main thread.</td>
1497 <td style="font-size: 11px; padding: 5px;"> </td>
1498 </tr>
1499
1500 </table>
1501 <h3>PPB_TextInputController</h3>
1502 <table>
1503 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
1504 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
1505 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
1506 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
1507 <td style="font-size: 11px; padding: 5px;">Web API </td>
1508 <td style="font-size: 11px; padding: 5px;">Limitations </td>
1509 </tr>
1510
1511 <tr bgcolor="#fcfcfc">
1512 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetTextInputTy pe </td>
1513 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1514 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1515 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent hints to browser about canvas containing input.</td>
1516 <td style="font-size: 11px; padding: 5px;">Unity has specifically raised a d esire to either be able to hint in this fashion, or preferrably the ability to i ntercept and display IME events / output inline inside a canvas. </td>
1517 </tr>
1518
1519 <tr bgcolor="#fcfcfc">
1520 <td style="font-weight: bold; font-size: 11px; padding: 5px;">UpdateCaretPos ition </td>
1521 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1522 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1523 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent hints to browser about canvas containing input.</td>
1524 <td style="font-size: 11px; padding: 5px;"> </td>
1525 </tr>
1526
1527 <tr bgcolor="#fcfcfc">
1528 <td style="font-weight: bold; font-size: 11px; padding: 5px;">CancelComposit ionText </td>
1529 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1530 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1531 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent hints to browser about canvas containing input.</td>
1532 <td style="font-size: 11px; padding: 5px;"> </td>
1533 </tr>
1534
1535 <tr bgcolor="#fcfcfc">
1536 <td style="font-weight: bold; font-size: 11px; padding: 5px;">UpdateSurround ingText </td>
1537 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1538 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1539 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent hints to browser about canvas containing input.</td>
1540 <td style="font-size: 11px; padding: 5px;"> </td>
1541 </tr>
1542
1543 </table>
1544 <h3>PPB_URLLoader</h3>
1545 <table>
1546 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
1547 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
1548 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
1549 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
1550 <td style="font-size: 11px; padding: 5px;">Web API </td>
1551 <td style="font-size: 11px; padding: 5px;">Limitations </td>
1552 </tr>
1553
1554 <tr bgcolor="#fcfcfc">
1555 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
1556 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1557 <td style="font-size: 11px; padding: 5px;">embind </td>
1558 <td style="font-size: 11px; padding: 5px;">new XMLHttpRequest(); </td>
1559 <td style="font-size: 11px; padding: 5px;"> </td>
1560 </tr>
1561
1562 <tr bgcolor="#fcfcfc">
1563 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Open </td>
1564 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1565 <td style="font-size: 11px; padding: 5px;">embind </td>
1566 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest.open </td>
1567 <td style="font-size: 11px; padding: 5px;"> </td>
1568 </tr>
1569
1570 <tr bgcolor="#fcfcfc">
1571 <td style="font-weight: bold; font-size: 11px; padding: 5px;">FollowRedirect </td>
1572 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1573 <td style="font-size: 11px; padding: 5px;">embind </td>
1574 <td style="font-size: 11px; padding: 5px;">Request.redirect </td>
1575 <td style="font-size: 11px; padding: 5px;"> </td>
1576 </tr>
1577
1578 <tr bgcolor="#fcfcfc">
1579 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
1580 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1581 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1582 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No XMLHTT PRequest equivalent</td>
1583 <td style="font-size: 11px; padding: 5px;"> </td>
1584 </tr>
1585
1586 <tr bgcolor="#fcfcfc">
1587 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetUploadProgr ess </td>
1588 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1589 <td style="font-size: 11px; padding: 5px;">embind </td>
1590 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest 'progress' Event < /td>
1591 <td style="font-size: 11px; padding: 5px;"> </td>
1592 </tr>
1593
1594 <tr bgcolor="#fcfcfc">
1595 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
1596 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1597 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1598 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No Fetch API equivalent</td>
1599 <td style="font-size: 11px; padding: 5px;"> </td>
1600 </tr>
1601
1602 <tr bgcolor="#fcfcfc">
1603 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetDownloadPro gress </td>
1604 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1605 <td style="font-size: 11px; padding: 5px;">embind </td>
1606 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest 'progress' Event < /td>
1607 <td style="font-size: 11px; padding: 5px;"> </td>
1608 </tr>
1609
1610 <tr bgcolor="#fcfcfc">
1611 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
1612 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1613 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1614 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No Fetch API equivalent</td>
1615 <td style="font-size: 11px; padding: 5px;"> </td>
1616 </tr>
1617
1618 <tr bgcolor="#fcfcfc">
1619 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetResponseInf o </td>
1620 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1621 <td style="font-size: 11px; padding: 5px;">embind </td>
1622 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest.getAllResponseHead ers </td>
1623 <td style="font-size: 11px; padding: 5px;"> </td>
1624 </tr>
1625
1626 <tr bgcolor="#fcfcfc">
1627 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
1628 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1629 <td style="font-size: 11px; padding: 5px;">embind </td>
1630 <td style="font-size: 11px; padding: 5px;">Fetch Response.* </td>
1631 <td style="font-size: 11px; padding: 5px;"> </td>
1632 </tr>
1633
1634 <tr bgcolor="#fcfcfc">
1635 <td style="font-weight: bold; font-size: 11px; padding: 5px;">ReadResponseBo dy </td>
1636 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1637 <td style="font-size: 11px; padding: 5px;">embind </td>
1638 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest.response </td>
1639 <td style="font-size: 11px; padding: 5px;"> </td>
1640 </tr>
1641
1642 <tr bgcolor="#fcfcfc">
1643 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
1644 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1645 <td style="font-size: 11px; padding: 5px;">embind </td>
1646 <td style="font-size: 11px; padding: 5px;">Body.* (Response is a Body) </td>
1647 <td style="font-size: 11px; padding: 5px;"> </td>
1648 </tr>
1649
1650 <tr bgcolor="#fcfcfc">
1651 <td style="font-weight: bold; font-size: 11px; padding: 5px;">FinishStreamin gToFile </td>
1652 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1653 <td style="font-size: 11px; padding: 5px;">embind </td>
1654 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
1655 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest and Fetch both ass ume streaming to memory, rather than directly to a storage. </td>
1656 </tr>
1657
1658 <tr bgcolor="#fcfcfc">
1659 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Close </td>
1660 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1661 <td style="font-size: 11px; padding: 5px;">embind </td>
1662 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest.abort </td>
1663 <td style="font-size: 11px; padding: 5px;"> </td>
1664 </tr>
1665
1666 <tr bgcolor="#fcfcfc">
1667 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
1668 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1669 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1670 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No Fetch API equivalent</td>
1671 <td style="font-size: 11px; padding: 5px;"> </td>
1672 </tr>
1673
1674 </table>
1675 <h3>PPB_URLRequestInfo</h3>
1676 <table>
1677 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
1678 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
1679 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
1680 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
1681 <td style="font-size: 11px; padding: 5px;">Web API </td>
1682 <td style="font-size: 11px; padding: 5px;">Limitations </td>
1683 </tr>
1684
1685 <tr bgcolor="#fcfcfc">
1686 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
1687 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1688 <td style="font-size: 11px; padding: 5px;">embind </td>
1689 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest </td>
1690 <td style="font-size: 11px; padding: 5px;"> </td>
1691 </tr>
1692
1693 <tr bgcolor="#fcfcfc">
1694 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
1695 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1696 <td style="font-size: 11px; padding: 5px;">embind </td>
1697 <td style="font-size: 11px; padding: 5px;">Fetch Request </td>
1698 <td style="font-size: 11px; padding: 5px;">No way to stream to a file. </td>
1699 </tr>
1700
1701 <tr bgcolor="#fcfcfc">
1702 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetProperty </ td>
1703 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1704 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1705 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent for XMLHttpRequest</td>
1706 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest doesn't provide di rect ways to per-request limit following redirects, stream to a file, set referr er or credentials policy. </td>
1707 </tr>
1708
1709 <tr bgcolor="#fcfcfc">
1710 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
1711 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1712 <td style="font-size: 11px; padding: 5px;">embind </td>
1713 <td style="font-size: 11px; padding: 5px;">Request.* </td>
1714 <td style="font-size: 11px; padding: 5px;"> </td>
1715 </tr>
1716
1717 <tr bgcolor="#fcfcfc">
1718 <td style="font-weight: bold; font-size: 11px; padding: 5px;">AppendDataToBo dy </td>
1719 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1720 <td style="font-size: 11px; padding: 5px;">embind </td>
1721 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest.send </td>
1722 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - Both must have the whole body, rather than a chunk.</td>
1723 </tr>
1724
1725 <tr bgcolor="#fcfcfc">
1726 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
1727 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1728 <td style="font-size: 11px; padding: 5px;">embind </td>
1729 <td style="font-size: 11px; padding: 5px;">fetch(.., options:body) </td>
1730 <td style="font-size: 11px; padding: 5px;"> </td>
1731 </tr>
1732
1733 <tr bgcolor="#fcfcfc">
1734 <td style="font-weight: bold; font-size: 11px; padding: 5px;">AppendFileToBo dy </td>
1735 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1736 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1737 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
1738 <td style="font-size: 11px; padding: 5px;"> </td>
1739 </tr>
1740
1741 <tr bgcolor="#fcfcfc">
1742 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
1743 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1744 <td style="font-size: 11px; padding: 5px;">N/A </td>
1745 <td style="font-size: 11px; padding: 5px;">&lt;form&gt; </td>
1746 <td style="font-size: 11px; padding: 5px;">You can also read with FileReader and upload, but that's more like AppendDataToBody </td>
1747 </tr>
1748
1749 </table>
1750 <h3>PPB_URLResponseInfo</h3>
1751 <table>
1752 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
1753 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
1754 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
1755 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
1756 <td style="font-size: 11px; padding: 5px;">Web API </td>
1757 <td style="font-size: 11px; padding: 5px;">Limitations </td>
1758 </tr>
1759
1760 <tr bgcolor="#fcfcfc">
1761 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetProperty </ td>
1762 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1763 <td style="font-size: 11px; padding: 5px;">embind </td>
1764 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest.getAllResponseHead ers + others </td>
1765 <td style="font-size: 11px; padding: 5px;"> </td>
1766 </tr>
1767
1768 <tr bgcolor="#fcfcfc">
1769 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
1770 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1771 <td style="font-size: 11px; padding: 5px;">embind </td>
1772 <td style="font-size: 11px; padding: 5px;">Fetch Response.* </td>
1773 <td style="font-size: 11px; padding: 5px;"> </td>
1774 </tr>
1775
1776 <tr bgcolor="#fcfcfc">
1777 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetBodyAsFileR ef </td>
1778 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1779 <td style="font-size: 11px; padding: 5px;">embind </td>
1780 <td style="font-size: 11px; padding: 5px;">Fetch Response (Body) .blob() </t d>
1781 <td style="font-size: 11px; padding: 5px;">Assumes storage layer optimizes t ransfer. </td>
1782 </tr>
1783
1784 </table>
1785 <h3>PPB_Var</h3>
1786 <table>
1787 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
1788 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
1789 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
1790 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
1791 <td style="font-size: 11px; padding: 5px;">Web API </td>
1792 <td style="font-size: 11px; padding: 5px;">Limitations </td>
1793 </tr>
1794
1795 <tr bgcolor="#fcfcfc">
1796 <td style="font-weight: bold; font-size: 11px; padding: 5px;">VarFromUtf8 </ td>
1797 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1798 <td style="font-size: 11px; padding: 5px;">embind </td>
1799 <td style="font-size: 11px; padding: 5px;">TextDecoder.decode </td>
1800 <td style="font-size: 11px; padding: 5px;"> </td>
1801 </tr>
1802
1803 <tr bgcolor="#fcfcfc">
1804 <td style="font-weight: bold; font-size: 11px; padding: 5px;">VarToUtf8 </td >
1805 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1806 <td style="font-size: 11px; padding: 5px;">embind </td>
1807 <td style="font-size: 11px; padding: 5px;">TextEncoder.encode </td>
1808 <td style="font-size: 11px; padding: 5px;"> </td>
1809 </tr>
1810
1811 <tr bgcolor="#fcfcfc">
1812 <td style="font-weight: bold; font-size: 11px; padding: 5px;">VarFromResourc e </td>
1813 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1814 <td style="font-size: 11px; padding: 5px;">N/A </td>
1815 <td style="font-size: 11px; padding: 5px;">N/A </td>
1816 <td style="font-size: 11px; padding: 5px;"> </td>
1817 </tr>
1818
1819 <tr bgcolor="#fcfcfc">
1820 <td style="font-weight: bold; font-size: 11px; padding: 5px;">VarToResource </td>
1821 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1822 <td style="font-size: 11px; padding: 5px;">N/A </td>
1823 <td style="font-size: 11px; padding: 5px;">N/A </td>
1824 <td style="font-size: 11px; padding: 5px;"> </td>
1825 </tr>
1826
1827 </table>
1828 <h3>PPB_VarArray</h3>
1829 <table>
1830 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
1831 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
1832 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
1833 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
1834 <td style="font-size: 11px; padding: 5px;">Web API </td>
1835 <td style="font-size: 11px; padding: 5px;">Limitations </td>
1836 </tr>
1837
1838 <tr bgcolor="#fcfcfc">
1839 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Get </td>
1840 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1841 <td style="font-size: 11px; padding: 5px;">embind </td>
1842 <td style="font-size: 11px; padding: 5px;">Array[i] </td>
1843 <td style="font-size: 11px; padding: 5px;"> </td>
1844 </tr>
1845
1846 <tr bgcolor="#fcfcfc">
1847 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Set </td>
1848 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1849 <td style="font-size: 11px; padding: 5px;">embind </td>
1850 <td style="font-size: 11px; padding: 5px;">Array[i] = x </td>
1851 <td style="font-size: 11px; padding: 5px;"> </td>
1852 </tr>
1853
1854 <tr bgcolor="#fcfcfc">
1855 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetLength </td >
1856 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1857 <td style="font-size: 11px; padding: 5px;">embind </td>
1858 <td style="font-size: 11px; padding: 5px;">Array.length </td>
1859 <td style="font-size: 11px; padding: 5px;"> </td>
1860 </tr>
1861
1862 <tr bgcolor="#fcfcfc">
1863 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetLength </td >
1864 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1865 <td style="font-size: 11px; padding: 5px;">embind </td>
1866 <td style="font-size: 11px; padding: 5px;">Array.length = n </td>
1867 <td style="font-size: 11px; padding: 5px;"> </td>
1868 </tr>
1869
1870 </table>
1871 <h3>PPB_VarArrayBuffer</h3>
1872 <table>
1873 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
1874 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
1875 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
1876 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
1877 <td style="font-size: 11px; padding: 5px;">Web API </td>
1878 <td style="font-size: 11px; padding: 5px;">Limitations </td>
1879 </tr>
1880
1881 <tr bgcolor="#fcfcfc">
1882 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
1883 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1884 <td style="font-size: 11px; padding: 5px;">embind </td>
1885 <td style="font-size: 11px; padding: 5px;">new ArrayBuffer(n) </td>
1886 <td style="font-size: 11px; padding: 5px;"> </td>
1887 </tr>
1888
1889 <tr bgcolor="#fcfcfc">
1890 <td style="font-weight: bold; font-size: 11px; padding: 5px;">ByteLength </t d>
1891 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1892 <td style="font-size: 11px; padding: 5px;">embind </td>
1893 <td style="font-size: 11px; padding: 5px;">ArrayBuffer.byteLength </td>
1894 <td style="font-size: 11px; padding: 5px;"> </td>
1895 </tr>
1896
1897 <tr bgcolor="#fcfcfc">
1898 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Map </td>
1899 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1900 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1901 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
1902 <td style="font-size: 11px; padding: 5px;">Asm.js / Wasm modules are unable to map regions of an ArrayBuffer other than their single linear memory heap.
1903 Future multiple memories or memory mapping might improve this. </td>
1904 </tr>
1905
1906 <tr bgcolor="#fcfcfc">
1907 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Unmap </td>
1908 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1909 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1910 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
1911 <td style="font-size: 11px; padding: 5px;"> </td>
1912 </tr>
1913
1914 </table>
1915 <h3>PPB_VarDictionary</h3>
1916 <table>
1917 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
1918 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
1919 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
1920 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
1921 <td style="font-size: 11px; padding: 5px;">Web API </td>
1922 <td style="font-size: 11px; padding: 5px;">Limitations </td>
1923 </tr>
1924
1925 <tr bgcolor="#fcfcfc">
1926 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
1927 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1928 <td style="font-size: 11px; padding: 5px;">embind </td>
1929 <td style="font-size: 11px; padding: 5px;">{} </td>
1930 <td style="font-size: 11px; padding: 5px;"> </td>
1931 </tr>
1932
1933 <tr bgcolor="#fcfcfc">
1934 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Get </td>
1935 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1936 <td style="font-size: 11px; padding: 5px;">embind </td>
1937 <td style="font-size: 11px; padding: 5px;">&lt;Object&gt;[i] </td>
1938 <td style="font-size: 11px; padding: 5px;"> </td>
1939 </tr>
1940
1941 <tr bgcolor="#fcfcfc">
1942 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Set </td>
1943 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1944 <td style="font-size: 11px; padding: 5px;">embind </td>
1945 <td style="font-size: 11px; padding: 5px;">&lt;Object&gt;[i] = x </td>
1946 <td style="font-size: 11px; padding: 5px;"> </td>
1947 </tr>
1948
1949 <tr bgcolor="#fcfcfc">
1950 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Delete </td>
1951 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1952 <td style="font-size: 11px; padding: 5px;">embind </td>
1953 <td style="font-size: 11px; padding: 5px;">delete &lt;Object&gt;[i] </td>
1954 <td style="font-size: 11px; padding: 5px;"> </td>
1955 </tr>
1956
1957 <tr bgcolor="#fcfcfc">
1958 <td style="font-weight: bold; font-size: 11px; padding: 5px;">HasKey </td>
1959 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1960 <td style="font-size: 11px; padding: 5px;">embind </td>
1961 <td style="font-size: 11px; padding: 5px;">x in &lt;Object&gt; </td>
1962 <td style="font-size: 11px; padding: 5px;"> </td>
1963 </tr>
1964
1965 <tr bgcolor="#fcfcfc">
1966 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetKeys </td>
1967 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1968 <td style="font-size: 11px; padding: 5px;">embind </td>
1969 <td style="font-size: 11px; padding: 5px;">for (k in &lt;Object&gt;) {} </td >
1970 <td style="font-size: 11px; padding: 5px;">No literal equivalent, but it can be built. </td>
1971 </tr>
1972
1973 </table>
1974 <h3>PPB_VideoDecoder</h3>
1975 <table>
1976 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
1977 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
1978 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
1979 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
1980 <td style="font-size: 11px; padding: 5px;">Web API </td>
1981 <td style="font-size: 11px; padding: 5px;">Limitations </td>
1982 </tr>
1983
1984 <tr bgcolor="#fcfcfc">
1985 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
1986 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1987 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1988 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
1989 <td style="font-size: 11px; padding: 5px;"> </td>
1990 </tr>
1991
1992 <tr bgcolor="#fcfcfc">
1993 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Initialize </t d>
1994 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1995 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1996 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
1997 <td style="font-size: 11px; padding: 5px;"> </td>
1998 </tr>
1999
2000 <tr bgcolor="#fcfcfc">
2001 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Decode </td>
2002 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2003 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2004 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2005 <td style="font-size: 11px; padding: 5px;"> </td>
2006 </tr>
2007
2008 <tr bgcolor="#fcfcfc">
2009 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetPicture </t d>
2010 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2011 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2012 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2013 <td style="font-size: 11px; padding: 5px;"> </td>
2014 </tr>
2015
2016 <tr bgcolor="#fcfcfc">
2017 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RecyclePicture </td>
2018 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2019 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2020 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2021 <td style="font-size: 11px; padding: 5px;"> </td>
2022 </tr>
2023
2024 <tr bgcolor="#fcfcfc">
2025 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Flush </td>
2026 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2027 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2028 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2029 <td style="font-size: 11px; padding: 5px;"> </td>
2030 </tr>
2031
2032 <tr bgcolor="#fcfcfc">
2033 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Reset </td>
2034 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2035 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2036 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2037 <td style="font-size: 11px; padding: 5px;"> </td>
2038 </tr>
2039
2040 </table>
2041 <h3>PPB_VideoEncoder</h3>
2042 <table>
2043 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
2044 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
2045 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
2046 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
2047 <td style="font-size: 11px; padding: 5px;">Web API </td>
2048 <td style="font-size: 11px; padding: 5px;">Limitations </td>
2049 </tr>
2050
2051 <tr bgcolor="#fcfcfc">
2052 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
2053 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2054 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2055 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2056 <td style="font-size: 11px; padding: 5px;">Overlap with MediaRecorder API, b ut not exact. </td>
2057 </tr>
2058
2059 <tr bgcolor="#fcfcfc">
2060 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetSupportedPr ofiles </td>
2061 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2062 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2063 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2064 <td style="font-size: 11px; padding: 5px;"> </td>
2065 </tr>
2066
2067 <tr bgcolor="#fcfcfc">
2068 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Initialize </t d>
2069 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2070 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2071 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2072 <td style="font-size: 11px; padding: 5px;"> </td>
2073 </tr>
2074
2075 <tr bgcolor="#fcfcfc">
2076 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetFramesRequi red </td>
2077 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2078 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2079 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2080 <td style="font-size: 11px; padding: 5px;"> </td>
2081 </tr>
2082
2083 <tr bgcolor="#fcfcfc">
2084 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetFrameCodedS ize </td>
2085 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2086 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2087 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2088 <td style="font-size: 11px; padding: 5px;"> </td>
2089 </tr>
2090
2091 <tr bgcolor="#fcfcfc">
2092 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetVideoFrame </td>
2093 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2094 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2095 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2096 <td style="font-size: 11px; padding: 5px;"> </td>
2097 </tr>
2098
2099 <tr bgcolor="#fcfcfc">
2100 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Encode </td>
2101 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2102 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2103 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2104 <td style="font-size: 11px; padding: 5px;"> </td>
2105 </tr>
2106
2107 <tr bgcolor="#fcfcfc">
2108 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetBitstreamBu ffer </td>
2109 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2110 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2111 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2112 <td style="font-size: 11px; padding: 5px;"> </td>
2113 </tr>
2114
2115 <tr bgcolor="#fcfcfc">
2116 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RecycleBitstre amBuffer </td>
2117 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2118 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2119 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2120 <td style="font-size: 11px; padding: 5px;"> </td>
2121 </tr>
2122
2123 <tr bgcolor="#fcfcfc">
2124 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RequestEncodin gParametersChange </td>
2125 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2126 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2127 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2128 <td style="font-size: 11px; padding: 5px;"> </td>
2129 </tr>
2130
2131 <tr bgcolor="#fcfcfc">
2132 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Close </td>
2133 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2134 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2135 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2136 <td style="font-size: 11px; padding: 5px;"> </td>
2137 </tr>
2138
2139 </table>
2140 <h3>PPB_VideoFrame</h3>
2141 <table>
2142 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
2143 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
2144 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
2145 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
2146 <td style="font-size: 11px; padding: 5px;">Web API </td>
2147 <td style="font-size: 11px; padding: 5px;">Limitations </td>
2148 </tr>
2149
2150 <tr bgcolor="#fcfcfc">
2151 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetTimestamp < /td>
2152 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2153 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2154 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2155 <td style="font-size: 11px; padding: 5px;"> </td>
2156 </tr>
2157
2158 <tr bgcolor="#fcfcfc">
2159 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetTimestamp < /td>
2160 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2161 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2162 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2163 <td style="font-size: 11px; padding: 5px;"> </td>
2164 </tr>
2165
2166 <tr bgcolor="#fcfcfc">
2167 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetFormat </td >
2168 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2169 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2170 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2171 <td style="font-size: 11px; padding: 5px;"> </td>
2172 </tr>
2173
2174 <tr bgcolor="#fcfcfc">
2175 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetSize </td>
2176 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2177 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2178 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2179 <td style="font-size: 11px; padding: 5px;"> </td>
2180 </tr>
2181
2182 <tr bgcolor="#fcfcfc">
2183 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetDataBuffer </td>
2184 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2185 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2186 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2187 <td style="font-size: 11px; padding: 5px;"> </td>
2188 </tr>
2189
2190 <tr bgcolor="#fcfcfc">
2191 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetDataBufferS ize </td>
2192 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2193 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2194 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2195 <td style="font-size: 11px; padding: 5px;"> </td>
2196 </tr>
2197
2198 </table>
2199 <h3>PPB_View</h3>
2200 <table>
2201 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
2202 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
2203 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
2204 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
2205 <td style="font-size: 11px; padding: 5px;">Web API </td>
2206 <td style="font-size: 11px; padding: 5px;">Limitations </td>
2207 </tr>
2208
2209 <tr bgcolor="#fcfcfc">
2210 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetRect </td>
2211 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2212 <td style="font-size: 11px; padding: 5px;">embind </td>
2213 <td style="font-size: 11px; padding: 5px;">Element.getBoundingClientRect </t d>
2214 <td style="font-size: 11px; padding: 5px;"> </td>
2215 </tr>
2216
2217 <tr bgcolor="#fcfcfc">
2218 <td style="font-weight: bold; font-size: 11px; padding: 5px;">IsFullscreen < /td>
2219 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2220 <td style="font-size: 11px; padding: 5px;">embind </td>
2221 <td style="font-size: 11px; padding: 5px;">Document.fullScreenEnabled </td>
2222 <td style="font-size: 11px; padding: 5px;">Pertains to document instead of j ust single element. </td>
2223 </tr>
2224
2225 <tr bgcolor="#fcfcfc">
2226 <td style="font-weight: bold; font-size: 11px; padding: 5px;">IsVisible </td >
2227 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2228 <td style="font-size: 11px; padding: 5px;">embind </td>
2229 <td style="font-size: 11px; padding: 5px;">IntersectionObserver </td>
2230 <td style="font-size: 11px; padding: 5px;"> </td>
2231 </tr>
2232
2233 <tr bgcolor="#fcfcfc">
2234 <td style="font-weight: bold; font-size: 11px; padding: 5px;">IsPageVisible </td>
2235 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2236 <td style="font-size: 11px; padding: 5px;">embind </td>
2237 <td style="font-size: 11px; padding: 5px;">document.visibilityState </td>
2238 <td style="font-size: 11px; padding: 5px;"> </td>
2239 </tr>
2240
2241 <tr bgcolor="#fcfcfc">
2242 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetClipRect </ td>
2243 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2244 <td style="font-size: 11px; padding: 5px;">embind </td>
2245 <td style="font-size: 11px; padding: 5px;">IntersectionObserver </td>
2246 <td style="font-size: 11px; padding: 5px;"> </td>
2247 </tr>
2248
2249 <tr bgcolor="#fcfcfc">
2250 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetDeviceScale </td>
2251 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2252 <td style="font-size: 11px; padding: 5px;">embind </td>
2253 <td style="font-size: 11px; padding: 5px;">window.devicePixelRatio </td>
2254 <td style="font-size: 11px; padding: 5px;"> </td>
2255 </tr>
2256
2257 <tr bgcolor="#fcfcfc">
2258 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetCSSScale </ td>
2259 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2260 <td style="font-size: 11px; padding: 5px;">embind </td>
2261 <td style="font-size: 11px; padding: 5px;">&lt;Element&gt;.getBoundingClient Rect().width / &lt;Element&gt;.offsetWidth </td>
2262 <td style="font-size: 11px; padding: 5px;"> </td>
2263 </tr>
2264
2265 <tr bgcolor="#fcfcfc">
2266 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetScrollOffse t </td>
2267 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2268 <td style="font-size: 11px; padding: 5px;">embind </td>
2269 <td style="font-size: 11px; padding: 5px;">&lt;Element&gt;.scrollTop / &lt;E lement&gt;.scrollLeft </td>
2270 <td style="font-size: 11px; padding: 5px;"> </td>
2271 </tr>
2272
2273 </table>
2274 <h3>PPB_WebSocket</h3>
2275 <table>
2276 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
2277 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
2278 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
2279 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
2280 <td style="font-size: 11px; padding: 5px;">Web API </td>
2281 <td style="font-size: 11px; padding: 5px;">Limitations </td>
2282 </tr>
2283
2284 <tr bgcolor="#fcfcfc">
2285 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
2286 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2287 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2288 <td style="font-size: 11px; padding: 5px;">WebSocket.WebSocket </td>
2289 <td style="font-size: 11px; padding: 5px;"> </td>
2290 </tr>
2291
2292 <tr bgcolor="#fcfcfc">
2293 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Connect </td>
2294 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2295 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2296 <td style="font-size: 11px; padding: 5px;">WebSocket.WebSocket(url, ...)
2297 WebSocket 'open' Event </td>
2298 <td style="font-size: 11px; padding: 5px;"> </td>
2299 </tr>
2300
2301 <tr bgcolor="#fcfcfc">
2302 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Close </td>
2303 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2304 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2305 <td style="font-size: 11px; padding: 5px;">WebSocket.close </td>
2306 <td style="font-size: 11px; padding: 5px;"> </td>
2307 </tr>
2308
2309 <tr bgcolor="#fcfcfc">
2310 <td style="font-weight: bold; font-size: 11px; padding: 5px;">ReceiveMessage </td>
2311 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2312 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2313 <td style="font-size: 11px; padding: 5px;">WebSocket 'message' Event
2314 WebSocket 'error' Event
2315 WebSocket 'close' Event </td>
2316 <td style="font-size: 11px; padding: 5px;"> </td>
2317 </tr>
2318
2319 <tr bgcolor="#fcfcfc">
2320 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SendMessage </ td>
2321 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2322 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2323 <td style="font-size: 11px; padding: 5px;">WebSocket.send </td>
2324 <td style="font-size: 11px; padding: 5px;"> </td>
2325 </tr>
2326
2327 <tr bgcolor="#fcfcfc">
2328 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetBufferedAmo unt </td>
2329 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2330 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2331 <td style="font-size: 11px; padding: 5px;">WebSocket.bufferedAmount </td>
2332 <td style="font-size: 11px; padding: 5px;"> </td>
2333 </tr>
2334
2335 <tr bgcolor="#fcfcfc">
2336 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetCloseCode < /td>
2337 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2338 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2339 <td style="font-size: 11px; padding: 5px;">CloseEvent.code </td>
2340 <td style="font-size: 11px; padding: 5px;"> </td>
2341 </tr>
2342
2343 <tr bgcolor="#fcfcfc">
2344 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetCloseReason </td>
2345 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2346 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2347 <td style="font-size: 11px; padding: 5px;">CloseEvent.reason </td>
2348 <td style="font-size: 11px; padding: 5px;"> </td>
2349 </tr>
2350
2351 <tr bgcolor="#fcfcfc">
2352 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetCloseWasCle an </td>
2353 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2354 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2355 <td style="font-size: 11px; padding: 5px;">CloseEvent.wasClean </td>
2356 <td style="font-size: 11px; padding: 5px;"> </td>
2357 </tr>
2358
2359 <tr bgcolor="#fcfcfc">
2360 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetExtensions </td>
2361 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2362 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2363 <td style="font-size: 11px; padding: 5px;">WebSocket.extensions </td>
2364 <td style="font-size: 11px; padding: 5px;"> </td>
2365 </tr>
2366
2367 <tr bgcolor="#fcfcfc">
2368 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetProtocol </ td>
2369 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2370 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2371 <td style="font-size: 11px; padding: 5px;">WebSocket.protocol </td>
2372 <td style="font-size: 11px; padding: 5px;"> </td>
2373 </tr>
2374
2375 <tr bgcolor="#fcfcfc">
2376 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetReadyState </td>
2377 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2378 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2379 <td style="font-size: 11px; padding: 5px;">WebSocket.readyState </td>
2380 <td style="font-size: 11px; padding: 5px;"> </td>
2381 </tr>
2382
2383 <tr bgcolor="#fcfcfc">
2384 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetURL </td>
2385 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2386 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2387 <td style="font-size: 11px; padding: 5px;">WebSocket.url </td>
2388 <td style="font-size: 11px; padding: 5px;"> </td>
2389 </tr>
2390
2391 </table>
2392 <h3>PPP_Graphics3D</h3>
2393 <table>
2394 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
2395 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
2396 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
2397 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
2398 <td style="font-size: 11px; padding: 5px;">Web API </td>
2399 <td style="font-size: 11px; padding: 5px;">Limitations </td>
2400 </tr>
2401
2402 <tr bgcolor="#fcfcfc">
2403 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Graphics3DCont extLost </td>
2404 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2405 <td style="font-size: 11px; padding: 5px;">SDL </td>
2406 <td style="font-size: 11px; padding: 5px;">Canvas 'webglcontextlost' Event < /td>
2407 <td style="font-size: 11px; padding: 5px;"> </td>
2408 </tr>
2409
2410 </table>
2411 <h3>PPP_InputEvent</h3>
2412 <table>
2413 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
2414 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
2415 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
2416 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
2417 <td style="font-size: 11px; padding: 5px;">Web API </td>
2418 <td style="font-size: 11px; padding: 5px;">Limitations </td>
2419 </tr>
2420
2421 <tr bgcolor="#fcfcfc">
2422 <td style="font-weight: bold; font-size: 11px; padding: 5px;">HandleInputEve nt </td>
2423 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2424 <td style="font-size: 11px; padding: 5px;">SDL </td>
2425 <td style="font-size: 11px; padding: 5px;">Element.addEventListener </td>
2426 <td style="font-size: 11px; padding: 5px;"> </td>
2427 </tr>
2428
2429 </table>
2430 <h3>PPP_Instance</h3>
2431 <table>
2432 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
2433 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
2434 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
2435 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
2436 <td style="font-size: 11px; padding: 5px;">Web API </td>
2437 <td style="font-size: 11px; padding: 5px;">Limitations </td>
2438 </tr>
2439
2440 <tr bgcolor="#fcfcfc">
2441 <td style="font-weight: bold; font-size: 11px; padding: 5px;">DidCreate </td >
2442 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2443 <td style="font-size: 11px; padding: 5px;">N/A </td>
2444 <td style="font-size: 11px; padding: 5px;">&lt;Element&gt;[key] </td>
2445 <td style="font-size: 11px; padding: 5px;">General DOM access lets you fish out tag attributes </td>
2446 </tr>
2447
2448 <tr bgcolor="#fcfcfc">
2449 <td style="font-weight: bold; font-size: 11px; padding: 5px;">DidDestroy </t d>
2450 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2451 <td style="font-size: 11px; padding: 5px;">N/A </td>
2452 <td style="font-size: 11px; padding: 5px;">N/A </td>
2453 <td style="font-size: 11px; padding: 5px;">Not triggered for NaCl </td>
2454 </tr>
2455
2456 <tr bgcolor="#fcfcfc">
2457 <td style="font-weight: bold; font-size: 11px; padding: 5px;">DidChangeView </td>
2458 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2459 <td style="font-size: 11px; padding: 5px;">N/A </td>
2460 <td style="font-size: 11px; padding: 5px;">Element 'resize' Event </td>
2461 <td style="font-size: 11px; padding: 5px;"> </td>
2462 </tr>
2463
2464 <tr bgcolor="#fcfcfc">
2465 <td style="font-weight: bold; font-size: 11px; padding: 5px;">DidChangeFocus </td>
2466 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2467 <td style="font-size: 11px; padding: 5px;">N/A </td>
2468 <td style="font-size: 11px; padding: 5px;">Element 'focus', 'focusin', 'focu sout' Events </td>
2469 <td style="font-size: 11px; padding: 5px;"> </td>
2470 </tr>
2471
2472 <tr bgcolor="#fcfcfc">
2473 <td style="font-weight: bold; font-size: 11px; padding: 5px;">HandleDocument Load </td>
2474 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2475 <td style="font-size: 11px; padding: 5px;">N/A </td>
2476 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No way to register as a mime type handler</td>
2477 <td style="font-size: 11px; padding: 5px;">NaCl modules via apps + a manifes t entry can be set up to handle particular mime types. </td>
2478 </tr>
2479
2480 </table>
2481 <h3>PPP_MessageHandler</h3>
2482 <table>
2483 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
2484 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
2485 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
2486 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
2487 <td style="font-size: 11px; padding: 5px;">Web API </td>
2488 <td style="font-size: 11px; padding: 5px;">Limitations </td>
2489 </tr>
2490
2491 <tr bgcolor="#fcfcfc">
2492 <td style="font-weight: bold; font-size: 11px; padding: 5px;">HandleMessage </td>
2493 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2494 <td style="font-size: 11px; padding: 5px;">embind </td>
2495 <td style="font-size: 11px; padding: 5px;">MessagePort 'message' Event
2496 Window 'message' Event </td>
2497 <td style="font-size: 11px; padding: 5px;"> </td>
2498 </tr>
2499
2500 <tr bgcolor="#fcfcfc">
2501 <td style="font-weight: bold; font-size: 11px; padding: 5px;">HandleBlocking Message </td>
2502 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2503 <td style="font-size: 11px; padding: 5px;">N/A </td>
2504 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
2505 <td style="font-size: 11px; padding: 5px;">Similar synchronization can be do ne off main thread with Atomics.wait. This was added to support emulation of syn chronous plugin APIs. </td>
2506 </tr>
2507
2508 </table>
2509 <h3>PPP_Messaging</h3>
2510 <table>
2511 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
2512 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
2513 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
2514 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
2515 <td style="font-size: 11px; padding: 5px;">Web API </td>
2516 <td style="font-size: 11px; padding: 5px;">Limitations </td>
2517 </tr>
2518
2519 <tr bgcolor="#fcfcfc">
2520 <td style="font-weight: bold; font-size: 11px; padding: 5px;">HandleMessage </td>
2521 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2522 <td style="font-size: 11px; padding: 5px;">embind </td>
2523 <td style="font-size: 11px; padding: 5px;">MessagePort 'message' Event
2524 Window 'message' Event </td>
2525 <td style="font-size: 11px; padding: 5px;"> </td>
2526 </tr>
2527
2528 </table>
2529 <h3>PPP_MouseLock</h3>
2530 <table>
2531 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
2532 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
2533 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
2534 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
2535 <td style="font-size: 11px; padding: 5px;">Web API </td>
2536 <td style="font-size: 11px; padding: 5px;">Limitations </td>
2537 </tr>
2538
2539 <tr bgcolor="#fcfcfc">
2540 <td style="font-weight: bold; font-size: 11px; padding: 5px;">MouseLockLost </td>
2541 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2542 <td style="font-size: 11px; padding: 5px;">SDL </td>
2543 <td style="font-size: 11px; padding: 5px;">Element 'pointerlockchange', 'poi nterlockerror' Events </td>
2544 <td style="font-size: 11px; padding: 5px;"> </td>
2545 </tr>
2546
2547 </table>
2548 <h2 id="irt">IRT</h2>
2549 <table>
2550 </table>
2551 <h3>PPB_Audio</h3>
2552 <table>
2553 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
2554 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
2555 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
2556 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
2557 <td style="font-size: 11px; padding: 5px;">Web API </td>
2558 <td style="font-size: 11px; padding: 5px;">Limitations </td>
2559 </tr>
2560
2561 <tr bgcolor="#fcfcfc">
2562 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
2563 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
2564 <td style="font-size: 11px; padding: 5px;">SDL (partial) </td>
2565 <td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - AudioWorkletNode ROUGHLY equivalent</td>
2566 <td style="font-size: 11px; padding: 5px;">Still being standardized. </td>
2567 </tr>
2568
2569 <tr bgcolor="#fcfcfc">
2570 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetCurrentConf ig </td>
2571 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2572 <td style="font-size: 11px; padding: 5px;">SDL </td>
2573 <td style="font-size: 11px; padding: 5px;">AudioContext.* (gets back setting s passed in) </td>
2574 <td style="font-size: 11px; padding: 5px;"> </td>
2575 </tr>
2576
2577 <tr bgcolor="#fcfcfc">
2578 <td style="font-weight: bold; font-size: 11px; padding: 5px;">StartPlayback </td>
2579 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2580 <td style="font-size: 11px; padding: 5px;">SDL </td>
2581 <td style="font-size: 11px; padding: 5px;">AudioBufferSourceNode.start </td>
2582 <td style="font-size: 11px; padding: 5px;"> </td>
2583 </tr>
2584
2585 <tr bgcolor="#fcfcfc">
2586 <td style="font-weight: bold; font-size: 11px; padding: 5px;">StopPlayback < /td>
2587 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2588 <td style="font-size: 11px; padding: 5px;">SDL </td>
2589 <td style="font-size: 11px; padding: 5px;">AudioBufferSourceNode.stop </td>
2590 <td style="font-size: 11px; padding: 5px;"> </td>
2591 </tr>
2592
2593 </table>
2594 <h3>PPB_AudioBuffer</h3>
2595 <table>
2596 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
2597 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
2598 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
2599 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
2600 <td style="font-size: 11px; padding: 5px;">Web API </td>
2601 <td style="font-size: 11px; padding: 5px;">Limitations </td>
2602 </tr>
2603
2604 <tr bgcolor="#fcfcfc">
2605 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetTimestamp < /td>
2606 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2607 <td style="font-size: 11px; padding: 5px;">SDL </td>
2608 <td style="font-size: 11px; padding: 5px;">AudioBufferSourceNode.start (para meter) </td>
2609 <td style="font-size: 11px; padding: 5px;">Passed in each time instead of at tached to the buffer. </td>
2610 </tr>
2611
2612 <tr bgcolor="#fcfcfc">
2613 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetTimestamp < /td>
2614 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2615 <td style="font-size: 11px; padding: 5px;">SDL </td>
2616 <td style="font-size: 11px; padding: 5px;">AudioBufferSourceNode.start (para meter) </td>
2617 <td style="font-size: 11px; padding: 5px;"> </td>
2618 </tr>
2619
2620 <tr bgcolor="#fcfcfc">
2621 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetSampleRate </td>
2622 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2623 <td style="font-size: 11px; padding: 5px;">SDL </td>
2624 <td style="font-size: 11px; padding: 5px;">AudioBuffer.sampleRate </td>
2625 <td style="font-size: 11px; padding: 5px;"> </td>
2626 </tr>
2627
2628 <tr bgcolor="#fcfcfc">
2629 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetSampleSize </td>
2630 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2631 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2632 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - WebAudio only uses 32-bit float, PPAPI does 16-bit int.</td>
2633 <td style="font-size: 11px; padding: 5px;">PPAPI theoretically supports mult iple sampling sizes. In practice, it only supports 16-bit samples. Unfortunately , developers like Unity have requested 16-bit sample sizes. </td>
2634 </tr>
2635
2636 <tr bgcolor="#fcfcfc">
2637 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetNumberOfCha nnels </td>
2638 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2639 <td style="font-size: 11px; padding: 5px;">SDL </td>
2640 <td style="font-size: 11px; padding: 5px;">AudioBuffer.numberOfChannels </td >
2641 <td style="font-size: 11px; padding: 5px;"> </td>
2642 </tr>
2643
2644 <tr bgcolor="#fcfcfc">
2645 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetDataBuffer </td>
2646 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2647 <td style="font-size: 11px; padding: 5px;">SDL </td>
2648 <td style="font-size: 11px; padding: 5px;">AudioBuffer.getChannelData </td>
2649 <td style="font-size: 11px; padding: 5px;"> </td>
2650 </tr>
2651
2652 <tr bgcolor="#fcfcfc">
2653 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetBufferSize </td>
2654 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2655 <td style="font-size: 11px; padding: 5px;">SDL </td>
2656 <td style="font-size: 11px; padding: 5px;">AudioBuffer.length </td>
2657 <td style="font-size: 11px; padding: 5px;"> </td>
2658 </tr>
2659
2660 </table>
2661 <h3>PPB_AudioConfig</h3>
2662 <table>
2663 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
2664 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
2665 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
2666 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
2667 <td style="font-size: 11px; padding: 5px;">Web API </td>
2668 <td style="font-size: 11px; padding: 5px;">Limitations </td>
2669 </tr>
2670
2671 <tr bgcolor="#fcfcfc">
2672 <td style="font-weight: bold; font-size: 11px; padding: 5px;">CreateStereo16 Bit </td>
2673 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2674 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2675 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - Only 32-b it float samples supported</td>
2676 <td style="font-size: 11px; padding: 5px;"> </td>
2677 </tr>
2678
2679 <tr bgcolor="#fcfcfc">
2680 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetSampleRate </td>
2681 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2682 <td style="font-size: 11px; padding: 5px;">SDL </td>
2683 <td style="font-size: 11px; padding: 5px;">AudioContext.sampleRate </td>
2684 <td style="font-size: 11px; padding: 5px;"> </td>
2685 </tr>
2686
2687 <tr bgcolor="#fcfcfc">
2688 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetSampleFrame Count </td>
2689 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2690 <td style="font-size: 11px; padding: 5px;">SDL </td>
2691 <td style="font-size: 11px; padding: 5px;">AudioBuffer.length </td>
2692 <td style="font-size: 11px; padding: 5px;"> </td>
2693 </tr>
2694
2695 <tr bgcolor="#fcfcfc">
2696 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RecommendSampl eRate </td>
2697 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2698 <td style="font-size: 11px; padding: 5px;">SDL </td>
2699 <td style="font-size: 11px; padding: 5px;">AudioContext.sampleRate (from def ault construct) </td>
2700 <td style="font-size: 11px; padding: 5px;">An AudioContext will have the pre ferred sampling rate by default. </td>
2701 </tr>
2702
2703 <tr bgcolor="#fcfcfc">
2704 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RecommendSampl eFrameCount </td>
2705 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2706 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2707 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No mechan ism to get a recomended buffer size.</td>
2708 <td style="font-size: 11px; padding: 5px;"> </td>
2709 </tr>
2710
2711 </table>
2712 <h3>PPB_Console</h3>
2713 <table>
2714 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
2715 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
2716 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
2717 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
2718 <td style="font-size: 11px; padding: 5px;">Web API </td>
2719 <td style="font-size: 11px; padding: 5px;">Limitations </td>
2720 </tr>
2721
2722 <tr bgcolor="#fcfcfc">
2723 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Log </td>
2724 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2725 <td style="font-size: 11px; padding: 5px;">utime </td>
2726 <td style="font-size: 11px; padding: 5px;">console.log/warn/error/... </td>
2727 <td style="font-size: 11px; padding: 5px;"> </td>
2728 </tr>
2729
2730 <tr bgcolor="#fcfcfc">
2731 <td style="font-weight: bold; font-size: 11px; padding: 5px;">LogWithSource </td>
2732 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2733 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2734 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2735 <td style="font-size: 11px; padding: 5px;">PPAPI provides a way to override the source filename and line number in a console message.
2736 (Though JS API provides way to style text). </td>
2737 </tr>
2738
2739 </table>
2740 <h3>PPB_Core</h3>
2741 <table>
2742 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
2743 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
2744 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
2745 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
2746 <td style="font-size: 11px; padding: 5px;">Web API </td>
2747 <td style="font-size: 11px; padding: 5px;">Limitations </td>
2748 </tr>
2749
2750 <tr bgcolor="#fcfcfc">
2751 <td style="font-weight: bold; font-size: 11px; padding: 5px;">getTime </td>
2752 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2753 <td style="font-size: 11px; padding: 5px;">utime </td>
2754 <td style="font-size: 11px; padding: 5px;">new Date().getTime() </td>
2755 <td style="font-size: 11px; padding: 5px;"> </td>
2756 </tr>
2757
2758 <tr bgcolor="#fcfcfc">
2759 <td style="font-weight: bold; font-size: 11px; padding: 5px;">getTimeTicks < /td>
2760 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2761 <td style="font-size: 11px; padding: 5px;">utime </td>
2762 <td style="font-size: 11px; padding: 5px;">new Date().getTime() </td>
2763 <td style="font-size: 11px; padding: 5px;"> </td>
2764 </tr>
2765
2766 <tr bgcolor="#fcfcfc">
2767 <td style="font-weight: bold; font-size: 11px; padding: 5px;">IsMainThread < /td>
2768 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2769 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2770 <td style="font-size: 11px; padding: 5px;">window.document !== undefined </t d>
2771 <td style="font-size: 11px; padding: 5px;"> </td>
2772 </tr>
2773
2774 <tr bgcolor="#fcfcfc">
2775 <td style="font-weight: bold; font-size: 11px; padding: 5px;">CallOnMainThre ad </td>
2776 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2777 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2778 <td style="font-size: 11px; padding: 5px;">Worker.postMessage + Atomics.wait </td>
2779 <td style="font-size: 11px; padding: 5px;">Equivalent synchronization can be built. </td>
2780 </tr>
2781
2782 </table>
2783 <h3>PPB_FileIO</h3>
2784 <table>
2785 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
2786 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
2787 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
2788 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
2789 <td style="font-size: 11px; padding: 5px;">Web API </td>
2790 <td style="font-size: 11px; padding: 5px;">Limitations </td>
2791 </tr>
2792
2793 <tr bgcolor="#fcfcfc">
2794 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
2795 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2796 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
2797 <td style="font-size: 11px; padding: 5px;">FileReader / FileWrite (Entry.cre ateReader / Entry.createWriter) </td>
2798 <td style="font-size: 11px; padding: 5px;">Create and open are used differen tly, but the pieces are of equal power. </td>
2799 </tr>
2800
2801 <tr bgcolor="#fcfcfc">
2802 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Open </td>
2803 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2804 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
2805 <td style="font-size: 11px; padding: 5px;">FileReader / FileWrite (Entry.cre ateReader / Entry.createWriter) </td>
2806 <td style="font-size: 11px; padding: 5px;"> </td>
2807 </tr>
2808
2809 <tr bgcolor="#fcfcfc">
2810 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Query </td>
2811 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2812 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
2813 <td style="font-size: 11px; padding: 5px;">Entry.getMetadata </td>
2814 <td style="font-size: 11px; padding: 5px;"> </td>
2815 </tr>
2816
2817 <tr bgcolor="#fcfcfc">
2818 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Touch </td>
2819 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2820 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
2821 <td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent, but no access time either.</td>
2822 <td style="font-size: 11px; padding: 5px;">Modify time can be bumped by writ ing. </td>
2823 </tr>
2824
2825 <tr bgcolor="#fcfcfc">
2826 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Read </td>
2827 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2828 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
2829 <td style="font-size: 11px; padding: 5px;">Entry.getFile + Blob.slice + File Reader.getBinaryData </td>
2830 <td style="font-size: 11px; padding: 5px;">Note, this API requires an extra copy to get a read into linear memory, and may be worse than that if Blob slices are not optimizes to use mmap. </td>
2831 </tr>
2832
2833 <tr bgcolor="#fcfcfc">
2834 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Write </td>
2835 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2836 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
2837 <td style="font-size: 11px; padding: 5px;">FileWriter.seek + FileWriter.writ e 'write*' Events </td>
2838 <td style="font-size: 11px; padding: 5px;"> </td>
2839 </tr>
2840
2841 <tr bgcolor="#fcfcfc">
2842 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetLength </td >
2843 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2844 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
2845 <td style="font-size: 11px; padding: 5px;">FileWriter.truncate + 'write*' Ev ents </td>
2846 <td style="font-size: 11px; padding: 5px;"> </td>
2847 </tr>
2848
2849 <tr bgcolor="#fcfcfc">
2850 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Flush </td>
2851 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2852 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2853 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent, no way to flush.</td>
2854 <td style="font-size: 11px; padding: 5px;"> </td>
2855 </tr>
2856
2857 <tr bgcolor="#fcfcfc">
2858 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Close </td>
2859 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2860 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
2861 <td style="font-size: 11px; padding: 5px;">No equivalent, open files and dir ectories are implicitly closed. </td>
2862 <td style="font-size: 11px; padding: 5px;"> </td>
2863 </tr>
2864
2865 <tr bgcolor="#fcfcfc">
2866 <td style="font-weight: bold; font-size: 11px; padding: 5px;">ReadToArray </ td>
2867 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2868 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2869 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent.</td>
2870 <td style="font-size: 11px; padding: 5px;">Allows multiple subrange reads in parallel. </td>
2871 </tr>
2872
2873 </table>
2874 <h3>PPB_FileRef</h3>
2875 <table>
2876 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
2877 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
2878 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
2879 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
2880 <td style="font-size: 11px; padding: 5px;">Web API </td>
2881 <td style="font-size: 11px; padding: 5px;">Limitations </td>
2882 </tr>
2883
2884 <tr bgcolor="#fcfcfc">
2885 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
2886 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2887 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
2888 <td style="font-size: 11px; padding: 5px;">Entry.getFile(..., {create:true}) </td>
2889 <td style="font-size: 11px; padding: 5px;"> </td>
2890 </tr>
2891
2892 <tr bgcolor="#fcfcfc">
2893 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetFileSystemT ype </td>
2894 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2895 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
2896 <td style="font-size: 11px; padding: 5px;">FileSystem.type </td>
2897 <td style="font-size: 11px; padding: 5px;"> </td>
2898 </tr>
2899
2900 <tr bgcolor="#fcfcfc">
2901 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetName </td>
2902 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2903 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
2904 <td style="font-size: 11px; padding: 5px;">Entry.name </td>
2905 <td style="font-size: 11px; padding: 5px;"> </td>
2906 </tr>
2907
2908 <tr bgcolor="#fcfcfc">
2909 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetPath </td>
2910 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2911 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
2912 <td style="font-size: 11px; padding: 5px;">Entry.fullPath </td>
2913 <td style="font-size: 11px; padding: 5px;"> </td>
2914 </tr>
2915
2916 <tr bgcolor="#fcfcfc">
2917 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetParent </td >
2918 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2919 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
2920 <td style="font-size: 11px; padding: 5px;">Entry.getParent </td>
2921 <td style="font-size: 11px; padding: 5px;"> </td>
2922 </tr>
2923
2924 <tr bgcolor="#fcfcfc">
2925 <td style="font-weight: bold; font-size: 11px; padding: 5px;">MakeDirectory </td>
2926 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2927 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
2928 <td style="font-size: 11px; padding: 5px;">Entry.getDirectory(..., {create:t rue}) </td>
2929 <td style="font-size: 11px; padding: 5px;"> </td>
2930 </tr>
2931
2932 <tr bgcolor="#fcfcfc">
2933 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Touch </td>
2934 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2935 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
2936 <td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent, but no access time either.</td>
2937 <td style="font-size: 11px; padding: 5px;">Modify time can be bumped by writ ing. </td>
2938 </tr>
2939
2940 <tr bgcolor="#fcfcfc">
2941 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Delete </td>
2942 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2943 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
2944 <td style="font-size: 11px; padding: 5px;">Entry.remove </td>
2945 <td style="font-size: 11px; padding: 5px;"> </td>
2946 </tr>
2947
2948 <tr bgcolor="#fcfcfc">
2949 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Rename </td>
2950 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2951 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
2952 <td style="font-size: 11px; padding: 5px;">Entry.moveTo </td>
2953 <td style="font-size: 11px; padding: 5px;"> </td>
2954 </tr>
2955
2956 <tr bgcolor="#fcfcfc">
2957 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Query </td>
2958 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2959 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2960 <td style="font-size: 11px; padding: 5px;">Entry.getMetadata </td>
2961 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - JS API ha s file size and last modified date, but doesn't have creation date and last acce ssed date.</td>
2962 </tr>
2963
2964 <tr bgcolor="#fcfcfc">
2965 <td style="font-weight: bold; font-size: 11px; padding: 5px;">ReadDirectoryE ntries </td>
2966 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2967 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
2968 <td style="font-size: 11px; padding: 5px;">Directory.readEntries </td>
2969 <td style="font-size: 11px; padding: 5px;"> </td>
2970 </tr>
2971
2972 </table>
2973 <h3>PPB_FileSystem</h3>
2974 <table>
2975 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
2976 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
2977 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
2978 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
2979 <td style="font-size: 11px; padding: 5px;">Web API </td>
2980 <td style="font-size: 11px; padding: 5px;">Limitations </td>
2981 </tr>
2982
2983 <tr bgcolor="#fcfcfc">
2984 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
2985 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2986 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
2987 <td style="font-size: 11px; padding: 5px;">window.requestFileSystem </td>
2988 <td style="font-size: 11px; padding: 5px;">JS API does both in one step </td >
2989 </tr>
2990
2991 <tr bgcolor="#fcfcfc">
2992 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Open </td>
2993 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2994 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2995 <td style="font-size: 11px; padding: 5px;">window.requestFileSystem </td>
2996 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - Filesyste ms API is chrome only. IndexedDB has additional performance limitations around s ubrange writes.</td>
2997 </tr>
2998
2999 <tr bgcolor="#fcfcfc">
3000 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetType </td>
3001 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3002 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3003 <td style="font-size: 11px; padding: 5px;">FileSystem.type </td>
3004 <td style="font-size: 11px; padding: 5px;"> </td>
3005 </tr>
3006
3007 </table>
3008 <h3>PPB_Fullscreen</h3>
3009 <table>
3010 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
3011 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
3012 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
3013 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
3014 <td style="font-size: 11px; padding: 5px;">Web API </td>
3015 <td style="font-size: 11px; padding: 5px;">Limitations </td>
3016 </tr>
3017
3018 <tr bgcolor="#fcfcfc">
3019 <td style="font-weight: bold; font-size: 11px; padding: 5px;">IsFullScreen < /td>
3020 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3021 <td style="font-size: 11px; padding: 5px;">html5.h </td>
3022 <td style="font-size: 11px; padding: 5px;">Document.fullscreenEnabled </td>
3023 <td style="font-size: 11px; padding: 5px;"> </td>
3024 </tr>
3025
3026 <tr bgcolor="#fcfcfc">
3027 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetFullscreen </td>
3028 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3029 <td style="font-size: 11px; padding: 5px;">html5.h </td>
3030 <td style="font-size: 11px; padding: 5px;">Document.requestFullscreen </td>
3031 <td style="font-size: 11px; padding: 5px;"> </td>
3032 </tr>
3033
3034 <tr bgcolor="#fcfcfc">
3035 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetScreenSize </td>
3036 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3037 <td style="font-size: 11px; padding: 5px;">html5.h </td>
3038 <td style="font-size: 11px; padding: 5px;">Document.exitFullscreen </td>
3039 <td style="font-size: 11px; padding: 5px;"> </td>
3040 </tr>
3041
3042 </table>
3043 <h3>PPB_Gamepad</h3>
3044 <table>
3045 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
3046 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
3047 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
3048 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
3049 <td style="font-size: 11px; padding: 5px;">Web API </td>
3050 <td style="font-size: 11px; padding: 5px;">Limitations </td>
3051 </tr>
3052
3053 <tr bgcolor="#fcfcfc">
3054 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Sample </td>
3055 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3056 <td style="font-size: 11px; padding: 5px;">SDL </td>
3057 <td style="font-size: 11px; padding: 5px;">Gamepad.* </td>
3058 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - PPAPI exp oses a timestamp value, but the JS API doesn't provide this (though it is speced ).</td>
3059 </tr>
3060
3061 </table>
3062 <h3>PPB_Graphics2D</h3>
3063 <table>
3064 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
3065 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
3066 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
3067 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
3068 <td style="font-size: 11px; padding: 5px;">Web API </td>
3069 <td style="font-size: 11px; padding: 5px;">Limitations </td>
3070 </tr>
3071
3072 <tr bgcolor="#fcfcfc">
3073 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
3074 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3075 <td style="font-size: 11px; padding: 5px;">SDL </td>
3076 <td style="font-size: 11px; padding: 5px;">Canvas.getContext('2d') </td>
3077 <td style="font-size: 11px; padding: 5px;"> </td>
3078 </tr>
3079
3080 <tr bgcolor="#fcfcfc">
3081 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Describe </td>
3082 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3083 <td style="font-size: 11px; padding: 5px;">SDL </td>
3084 <td style="font-size: 11px; padding: 5px;">Canvas.clientWidth + Canvas.clien tHeight </td>
3085 <td style="font-size: 11px; padding: 5px;"> </td>
3086 </tr>
3087
3088 <tr bgcolor="#fcfcfc">
3089 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PaintImageData </td>
3090 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3091 <td style="font-size: 11px; padding: 5px;">SDL </td>
3092 <td style="font-size: 11px; padding: 5px;">CanvasRenderingContext2d.putImage Data </td>
3093 <td style="font-size: 11px; padding: 5px;"> </td>
3094 </tr>
3095
3096 <tr bgcolor="#fcfcfc">
3097 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Scroll </td>
3098 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3099 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3100 <td style="font-size: 11px; padding: 5px;">CanvasRenderingContext2d.scrollIn toView </td>
3101 <td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - Not an exact match (might have to resort to getImageData + putImageData which w ill be slow). Not a cross-browser standard.</td>
3102 </tr>
3103
3104 <tr bgcolor="#fcfcfc">
3105 <td style="font-weight: bold; font-size: 11px; padding: 5px;">ReplaceContent s </td>
3106 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3107 <td style="font-size: 11px; padding: 5px;">SDL </td>
3108 <td style="font-size: 11px; padding: 5px;">CanvasRenderingContext2d.drawImag e </td>
3109 <td style="font-size: 11px; padding: 5px;"> </td>
3110 </tr>
3111
3112 <tr bgcolor="#fcfcfc">
3113 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Flush </td>
3114 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3115 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3116 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - Only retu rning to the event loop triggers the flush.</td>
3117 <td style="font-size: 11px; padding: 5px;"> </td>
3118 </tr>
3119
3120 <tr bgcolor="#fcfcfc">
3121 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetScale </td>
3122 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3123 <td style="font-size: 11px; padding: 5px;">SDL </td>
3124 <td style="font-size: 11px; padding: 5px;">CanvasRenderingContext2d.scale </ td>
3125 <td style="font-size: 11px; padding: 5px;"> </td>
3126 </tr>
3127
3128 <tr bgcolor="#fcfcfc">
3129 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetScale </td>
3130 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3131 <td style="font-size: 11px; padding: 5px;">SDL </td>
3132 <td style="font-size: 11px; padding: 5px;">CanvasRenderingContext2d.currentT ransform </td>
3133 <td style="font-size: 11px; padding: 5px;"> </td>
3134 </tr>
3135
3136 <tr bgcolor="#fcfcfc">
3137 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetLayerTransf orm </td>
3138 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3139 <td style="font-size: 11px; padding: 5px;">SDL </td>
3140 <td style="font-size: 11px; padding: 5px;">CanvasRenderingContext2d.setTrans form
3141 CanvasRenderingContext2d.scale
3142 CanvasRenderingContext2d.translate </td>
3143 <td style="font-size: 11px; padding: 5px;"> </td>
3144 </tr>
3145
3146 </table>
3147 <h3>PPB_Graphics3D</h3>
3148 <table>
3149 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
3150 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
3151 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
3152 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
3153 <td style="font-size: 11px; padding: 5px;">Web API </td>
3154 <td style="font-size: 11px; padding: 5px;">Limitations </td>
3155 </tr>
3156
3157 <tr bgcolor="#fcfcfc">
3158 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetAttribMaxVa lue </td>
3159 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3160 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3161 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - Canvas.ge tContext lets you set booleans requesting depth / stencil buffers of certain siz es, but does not have a way to query what's possible (or get anything other than on or off for each)</td>
3162 <td style="font-size: 11px; padding: 5px;"> </td>
3163 </tr>
3164
3165 <tr bgcolor="#fcfcfc">
3166 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
3167 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3168 <td style="font-size: 11px; padding: 5px;">SDL </td>
3169 <td style="font-size: 11px; padding: 5px;">Canvas.getContext </td>
3170 <td style="font-size: 11px; padding: 5px;"> </td>
3171 </tr>
3172
3173 <tr bgcolor="#fcfcfc">
3174 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetAttribs </t d>
3175 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3176 <td style="font-size: 11px; padding: 5px;">SDL </td>
3177 <td style="font-size: 11px; padding: 5px;">WebGLRenderingContext.getContextA ttributes </td>
3178 <td style="font-size: 11px; padding: 5px;"> </td>
3179 </tr>
3180
3181 <tr bgcolor="#fcfcfc">
3182 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetAttribs </t d>
3183 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3184 <td style="font-size: 11px; padding: 5px;">SDL </td>
3185 <td style="font-size: 11px; padding: 5px;">Canvas.getContext(.., OPTIONS) </ td>
3186 <td style="font-size: 11px; padding: 5px;"> </td>
3187 </tr>
3188
3189 <tr bgcolor="#fcfcfc">
3190 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetError </td>
3191 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3192 <td style="font-size: 11px; padding: 5px;">SDL </td>
3193 <td style="font-size: 11px; padding: 5px;">WebGLRenderingContext.getError </ td>
3194 <td style="font-size: 11px; padding: 5px;"> </td>
3195 </tr>
3196
3197 <tr bgcolor="#fcfcfc">
3198 <td style="font-weight: bold; font-size: 11px; padding: 5px;">ResizeBuffers </td>
3199 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3200 <td style="font-size: 11px; padding: 5px;">SDL </td>
3201 <td style="font-size: 11px; padding: 5px;">&lt;Canvas&gt;.width = w; &lt;Can vas&gt;.height = h; </td>
3202 <td style="font-size: 11px; padding: 5px;"> </td>
3203 </tr>
3204
3205 <tr bgcolor="#fcfcfc">
3206 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SwapBuffers </ td>
3207 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3208 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3209 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No way to explicitly flip a frame, must return to the event loop.</td>
3210 <td style="font-size: 11px; padding: 5px;"> </td>
3211 </tr>
3212
3213 </table>
3214 <h3>PPB_ImageData</h3>
3215 <table>
3216 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
3217 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
3218 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
3219 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
3220 <td style="font-size: 11px; padding: 5px;">Web API </td>
3221 <td style="font-size: 11px; padding: 5px;">Limitations </td>
3222 </tr>
3223
3224 <tr bgcolor="#fcfcfc">
3225 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetNativeImage DataFormat </td>
3226 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3227 <td style="font-size: 11px; padding: 5px;">SDL </td>
3228 <td style="font-size: 11px; padding: 5px;">ImageData mandates RGBA order </t d>
3229 <td style="font-size: 11px; padding: 5px;"> </td>
3230 </tr>
3231
3232 <tr bgcolor="#fcfcfc">
3233 <td style="font-weight: bold; font-size: 11px; padding: 5px;">IsImageDataFor matSupported </td>
3234 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3235 <td style="font-size: 11px; padding: 5px;">SDL </td>
3236 <td style="font-size: 11px; padding: 5px;">ImageData mandates RGBA order </t d>
3237 <td style="font-size: 11px; padding: 5px;"> </td>
3238 </tr>
3239
3240 <tr bgcolor="#fcfcfc">
3241 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
3242 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3243 <td style="font-size: 11px; padding: 5px;">SDL </td>
3244 <td style="font-size: 11px; padding: 5px;">CanvasRenderingContext2d.createIm ageData </td>
3245 <td style="font-size: 11px; padding: 5px;"> </td>
3246 </tr>
3247
3248 <tr bgcolor="#fcfcfc">
3249 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Describe </td>
3250 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3251 <td style="font-size: 11px; padding: 5px;">SDL </td>
3252 <td style="font-size: 11px; padding: 5px;">ImageData never has a stride </td >
3253 <td style="font-size: 11px; padding: 5px;"> </td>
3254 </tr>
3255
3256 <tr bgcolor="#fcfcfc">
3257 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Map </td>
3258 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3259 <td style="font-size: 11px; padding: 5px;">SDL </td>
3260 <td style="font-size: 11px; padding: 5px;">ImageData.data </td>
3261 <td style="font-size: 11px; padding: 5px;"> </td>
3262 </tr>
3263
3264 <tr bgcolor="#fcfcfc">
3265 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Unmap </td>
3266 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3267 <td style="font-size: 11px; padding: 5px;">SDL </td>
3268 <td style="font-size: 11px; padding: 5px;">ImageData.data </td>
3269 <td style="font-size: 11px; padding: 5px;"> </td>
3270 </tr>
3271
3272 </table>
3273 <h3>PPB_InputEvent</h3>
3274 <table>
3275 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
3276 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
3277 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
3278 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
3279 <td style="font-size: 11px; padding: 5px;">Web API </td>
3280 <td style="font-size: 11px; padding: 5px;">Limitations </td>
3281 </tr>
3282
3283 <tr bgcolor="#fcfcfc">
3284 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RequestInputEv ents </td>
3285 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3286 <td style="font-size: 11px; padding: 5px;">SDL </td>
3287 <td style="font-size: 11px; padding: 5px;">No direct equivalent </td>
3288 <td style="font-size: 11px; padding: 5px;">The lack of this feature is proba bly less relevant as JS / Wasm runs on the main thread and can more cheaply filt er events without incurring a cross process round-trip. </td>
3289 </tr>
3290
3291 <tr bgcolor="#fcfcfc">
3292 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RequestFilteri ngInputEvents </td>
3293 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3294 <td style="font-size: 11px; padding: 5px;">SDL </td>
3295 <td style="font-size: 11px; padding: 5px;">mouse* key* wheel* touch* composi tion* Events </td>
3296 <td style="font-size: 11px; padding: 5px;"> </td>
3297 </tr>
3298
3299 <tr bgcolor="#fcfcfc">
3300 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
3301 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3302 <td style="font-size: 11px; padding: 5px;">SDL </td>
3303 <td style="font-size: 11px; padding: 5px;">Element.addEventListener </td>
3304 <td style="font-size: 11px; padding: 5px;"> </td>
3305 </tr>
3306
3307 <tr bgcolor="#fcfcfc">
3308 <td style="font-weight: bold; font-size: 11px; padding: 5px;">ClearInputEven tRequest </td>
3309 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3310 <td style="font-size: 11px; padding: 5px;">SDL </td>
3311 <td style="font-size: 11px; padding: 5px;">Element.removeEventListener </td>
3312 <td style="font-size: 11px; padding: 5px;"> </td>
3313 </tr>
3314
3315 <tr bgcolor="#fcfcfc">
3316 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetType </td>
3317 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3318 <td style="font-size: 11px; padding: 5px;">SDL </td>
3319 <td style="font-size: 11px; padding: 5px;">Event class descendants </td>
3320 <td style="font-size: 11px; padding: 5px;"> </td>
3321 </tr>
3322
3323 <tr bgcolor="#fcfcfc">
3324 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetTimeStamp < /td>
3325 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3326 <td style="font-size: 11px; padding: 5px;">SDL </td>
3327 <td style="font-size: 11px; padding: 5px;">Event.timeStamp </td>
3328 <td style="font-size: 11px; padding: 5px;"> </td>
3329 </tr>
3330
3331 <tr bgcolor="#fcfcfc">
3332 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetModifiers < /td>
3333 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3334 <td style="font-size: 11px; padding: 5px;">SDL </td>
3335 <td style="font-size: 11px; padding: 5px;">*Event.altKey/shiftKey/metaKey/ct rlKey </td>
3336 <td style="font-size: 11px; padding: 5px;"> </td>
3337 </tr>
3338
3339 </table>
3340 <h3>PPB_MouseInputEvent</h3>
3341 <table>
3342 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
3343 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
3344 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
3345 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
3346 <td style="font-size: 11px; padding: 5px;">Web API </td>
3347 <td style="font-size: 11px; padding: 5px;">Limitations </td>
3348 </tr>
3349
3350 <tr bgcolor="#fcfcfc">
3351 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
3352 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3353 <td style="font-size: 11px; padding: 5px;">SDL </td>
3354 <td style="font-size: 11px; padding: 5px;">MouseEvent </td>
3355 <td style="font-size: 11px; padding: 5px;"> </td>
3356 </tr>
3357
3358 <tr bgcolor="#fcfcfc">
3359 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetButton </td >
3360 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3361 <td style="font-size: 11px; padding: 5px;">SDL </td>
3362 <td style="font-size: 11px; padding: 5px;">MouseEvent.button </td>
3363 <td style="font-size: 11px; padding: 5px;"> </td>
3364 </tr>
3365
3366 <tr bgcolor="#fcfcfc">
3367 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetPosition </ td>
3368 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3369 <td style="font-size: 11px; padding: 5px;">SDL </td>
3370 <td style="font-size: 11px; padding: 5px;">MouseEvent.client*/page*/offset* </td>
3371 <td style="font-size: 11px; padding: 5px;"> </td>
3372 </tr>
3373
3374 <tr bgcolor="#fcfcfc">
3375 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetClickCount </td>
3376 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3377 <td style="font-size: 11px; padding: 5px;">SDL </td>
3378 <td style="font-size: 11px; padding: 5px;">dblclick' vs 'mousedown' Events < /td>
3379 <td style="font-size: 11px; padding: 5px;"> </td>
3380 </tr>
3381
3382 <tr bgcolor="#fcfcfc">
3383 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetMovement </ td>
3384 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3385 <td style="font-size: 11px; padding: 5px;">SDL </td>
3386 <td style="font-size: 11px; padding: 5px;">MouseEvent.movement* </td>
3387 <td style="font-size: 11px; padding: 5px;"> </td>
3388 </tr>
3389
3390 </table>
3391 <h3>PPB_WheelInputEvent</h3>
3392 <table>
3393 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
3394 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
3395 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
3396 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
3397 <td style="font-size: 11px; padding: 5px;">Web API </td>
3398 <td style="font-size: 11px; padding: 5px;">Limitations </td>
3399 </tr>
3400
3401 <tr bgcolor="#fcfcfc">
3402 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
3403 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3404 <td style="font-size: 11px; padding: 5px;">SDL </td>
3405 <td style="font-size: 11px; padding: 5px;">WheelEvent </td>
3406 <td style="font-size: 11px; padding: 5px;"> </td>
3407 </tr>
3408
3409 <tr bgcolor="#fcfcfc">
3410 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetDelta </td>
3411 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3412 <td style="font-size: 11px; padding: 5px;">SDL </td>
3413 <td style="font-size: 11px; padding: 5px;">WheelEvent.delta* </td>
3414 <td style="font-size: 11px; padding: 5px;"> </td>
3415 </tr>
3416
3417 <tr bgcolor="#fcfcfc">
3418 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetTicks </td>
3419 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3420 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3421 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - deltaMode kinda of contains this info, but incompletely.</td>
3422 <td style="font-size: 11px; padding: 5px;"> </td>
3423 </tr>
3424
3425 <tr bgcolor="#fcfcfc">
3426 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetScrollByPag e </td>
3427 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3428 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3429 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - deltaMode kinda of contains this info, but incompletely.</td>
3430 <td style="font-size: 11px; padding: 5px;"> </td>
3431 </tr>
3432
3433 </table>
3434 <h3>PPB_KeyboardInputEvent</h3>
3435 <table>
3436 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
3437 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
3438 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
3439 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
3440 <td style="font-size: 11px; padding: 5px;">Web API </td>
3441 <td style="font-size: 11px; padding: 5px;">Limitations </td>
3442 </tr>
3443
3444 <tr bgcolor="#fcfcfc">
3445 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
3446 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3447 <td style="font-size: 11px; padding: 5px;">SDL </td>
3448 <td style="font-size: 11px; padding: 5px;">KeyboardEvent </td>
3449 <td style="font-size: 11px; padding: 5px;"> </td>
3450 </tr>
3451
3452 <tr bgcolor="#fcfcfc">
3453 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetKeyCode </t d>
3454 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3455 <td style="font-size: 11px; padding: 5px;">SDL </td>
3456 <td style="font-size: 11px; padding: 5px;">KeyboardEvent.keyCode </td>
3457 <td style="font-size: 11px; padding: 5px;"> </td>
3458 </tr>
3459
3460 <tr bgcolor="#fcfcfc">
3461 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetCharacterTe xt </td>
3462 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3463 <td style="font-size: 11px; padding: 5px;">SDL </td>
3464 <td style="font-size: 11px; padding: 5px;">KeyboardEvent.key </td>
3465 <td style="font-size: 11px; padding: 5px;"> </td>
3466 </tr>
3467
3468 <tr bgcolor="#fcfcfc">
3469 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetCode </td>
3470 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3471 <td style="font-size: 11px; padding: 5px;">SDL </td>
3472 <td style="font-size: 11px; padding: 5px;">KeyboardEvent.code </td>
3473 <td style="font-size: 11px; padding: 5px;"> </td>
3474 </tr>
3475
3476 </table>
3477 <h3>PPB_TouchInputEvent</h3>
3478 <table>
3479 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
3480 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
3481 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
3482 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
3483 <td style="font-size: 11px; padding: 5px;">Web API </td>
3484 <td style="font-size: 11px; padding: 5px;">Limitations </td>
3485 </tr>
3486
3487 <tr bgcolor="#fcfcfc">
3488 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
3489 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3490 <td style="font-size: 11px; padding: 5px;">SDL </td>
3491 <td style="font-size: 11px; padding: 5px;">TouchEvent </td>
3492 <td style="font-size: 11px; padding: 5px;"> </td>
3493 </tr>
3494
3495 <tr bgcolor="#fcfcfc">
3496 <td style="font-weight: bold; font-size: 11px; padding: 5px;">AddTouchPoint </td>
3497 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3498 <td style="font-size: 11px; padding: 5px;">SDL </td>
3499 <td style="font-size: 11px; padding: 5px;">TouchEvent.touches.push </td>
3500 <td style="font-size: 11px; padding: 5px;"> </td>
3501 </tr>
3502
3503 <tr bgcolor="#fcfcfc">
3504 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetTouchCount </td>
3505 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3506 <td style="font-size: 11px; padding: 5px;">SDL </td>
3507 <td style="font-size: 11px; padding: 5px;">TouchEvent.touches.length </td>
3508 <td style="font-size: 11px; padding: 5px;"> </td>
3509 </tr>
3510
3511 <tr bgcolor="#fcfcfc">
3512 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetTouchByInde x </td>
3513 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3514 <td style="font-size: 11px; padding: 5px;">SDL </td>
3515 <td style="font-size: 11px; padding: 5px;">TouchEvent.touches[i] </td>
3516 <td style="font-size: 11px; padding: 5px;"> </td>
3517 </tr>
3518
3519 <tr bgcolor="#fcfcfc">
3520 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetTouchById < /td>
3521 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3522 <td style="font-size: 11px; padding: 5px;">SDL </td>
3523 <td style="font-size: 11px; padding: 5px;">Touch.indentifer (to figure this out yourself) </td>
3524 <td style="font-size: 11px; padding: 5px;"> </td>
3525 </tr>
3526
3527 </table>
3528 <h3>PPB_IMEInputEvent</h3>
3529 <table>
3530 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
3531 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
3532 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
3533 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
3534 <td style="font-size: 11px; padding: 5px;">Web API </td>
3535 <td style="font-size: 11px; padding: 5px;">Limitations </td>
3536 </tr>
3537
3538 <tr bgcolor="#fcfcfc">
3539 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
3540 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3541 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3542 <td style="font-size: 11px; padding: 5px;">CompositionEvent </td>
3543 <td style="font-size: 11px; padding: 5px;"> </td>
3544 </tr>
3545
3546 <tr bgcolor="#fcfcfc">
3547 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetText </td>
3548 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3549 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3550 <td style="font-size: 11px; padding: 5px;">CompositionEvent.data </td>
3551 <td style="font-size: 11px; padding: 5px;"> </td>
3552 </tr>
3553
3554 <tr bgcolor="#fcfcfc">
3555 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetSegmentNumb er </td>
3556 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3557 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3558 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
3559 <td style="font-size: 11px; padding: 5px;"> </td>
3560 </tr>
3561
3562 <tr bgcolor="#fcfcfc">
3563 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetSegmentOffs et </td>
3564 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3565 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3566 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
3567 <td style="font-size: 11px; padding: 5px;"> </td>
3568 </tr>
3569
3570 <tr bgcolor="#fcfcfc">
3571 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetTargetSegme nt </td>
3572 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3573 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3574 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
3575 <td style="font-size: 11px; padding: 5px;"> </td>
3576 </tr>
3577
3578 <tr bgcolor="#fcfcfc">
3579 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetSelection < /td>
3580 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3581 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3582 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
3583 <td style="font-size: 11px; padding: 5px;"> </td>
3584 </tr>
3585
3586 </table>
3587 <h3>PPB_Instance</h3>
3588 <table>
3589 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
3590 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
3591 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
3592 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
3593 <td style="font-size: 11px; padding: 5px;">Web API </td>
3594 <td style="font-size: 11px; padding: 5px;">Limitations </td>
3595 </tr>
3596
3597 <tr bgcolor="#fcfcfc">
3598 <td style="font-weight: bold; font-size: 11px; padding: 5px;">BindGraphics < /td>
3599 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3600 <td style="font-size: 11px; padding: 5px;">SDL </td>
3601 <td style="font-size: 11px; padding: 5px;">Canvas.getContext (moot as bindin g is automatic). </td>
3602 <td style="font-size: 11px; padding: 5px;"> </td>
3603 </tr>
3604
3605 <tr bgcolor="#fcfcfc">
3606 <td style="font-weight: bold; font-size: 11px; padding: 5px;">IsFullFrame </ td>
3607 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3608 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3609 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent to mime type handlers.</td>
3610 <td style="font-size: 11px; padding: 5px;">NaCl apps can be registered to ha ndle a particular mime type and own the whole document. </td>
3611 </tr>
3612
3613 </table>
3614 <h3>PPB_MediaStreamAudioTrack</h3>
3615 <table>
3616 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
3617 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
3618 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
3619 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
3620 <td style="font-size: 11px; padding: 5px;">Web API </td>
3621 <td style="font-size: 11px; padding: 5px;">Limitations </td>
3622 </tr>
3623
3624 <tr bgcolor="#fcfcfc">
3625 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Configure </td >
3626 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3627 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3628 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
3629 <td style="font-size: 11px; padding: 5px;"> </td>
3630 </tr>
3631
3632 <tr bgcolor="#fcfcfc">
3633 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetAttrib </td >
3634 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3635 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3636 <td style="font-size: 11px; padding: 5px;">MediaStreamSettings.channelCount </td>
3637 <td style="font-size: 11px; padding: 5px;"> </td>
3638 </tr>
3639
3640 <tr bgcolor="#fcfcfc">
3641 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
3642 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3643 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3644 <td style="font-size: 11px; padding: 5px;">MediaStreamSettings.sampleSize </ td>
3645 <td style="font-size: 11px; padding: 5px;"> </td>
3646 </tr>
3647
3648 <tr bgcolor="#fcfcfc">
3649 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
3650 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3651 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3652 <td style="font-size: 11px; padding: 5px;">MediaStreamSettings.sampleRate </ td>
3653 <td style="font-size: 11px; padding: 5px;"> </td>
3654 </tr>
3655
3656 <tr bgcolor="#fcfcfc">
3657 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
3658 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3659 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3660 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - no equiva lent to PP_MEDIASTREAMAUDIOTRACK_ATTRIB_BUFFERS</td>
3661 <td style="font-size: 11px; padding: 5px;"> </td>
3662 </tr>
3663
3664 <tr bgcolor="#fcfcfc">
3665 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
3666 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3667 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3668 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - no equiva lent to PP_MEDIASTREAMAUDIOTRACK_ATTRIB_DURATION</td>
3669 <td style="font-size: 11px; padding: 5px;"> </td>
3670 </tr>
3671
3672 <tr bgcolor="#fcfcfc">
3673 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetId </td>
3674 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3675 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3676 <td style="font-size: 11px; padding: 5px;">MediaStream.id </td>
3677 <td style="font-size: 11px; padding: 5px;"> </td>
3678 </tr>
3679
3680 <tr bgcolor="#fcfcfc">
3681 <td style="font-weight: bold; font-size: 11px; padding: 5px;">HasEnded </td>
3682 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3683 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3684 <td style="font-size: 11px; padding: 5px;">MediaStream.ended </td>
3685 <td style="font-size: 11px; padding: 5px;"> </td>
3686 </tr>
3687
3688 <tr bgcolor="#fcfcfc">
3689 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetBuffer </td >
3690 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3691 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3692 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
3693 <td style="font-size: 11px; padding: 5px;"> </td>
3694 </tr>
3695
3696 <tr bgcolor="#fcfcfc">
3697 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RecycleBuffer </td>
3698 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3699 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3700 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
3701 <td style="font-size: 11px; padding: 5px;"> </td>
3702 </tr>
3703
3704 <tr bgcolor="#fcfcfc">
3705 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Close </td>
3706 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3707 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3708 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
3709 <td style="font-size: 11px; padding: 5px;"> </td>
3710 </tr>
3711
3712 </table>
3713 <h3>PPB_MediaStreamVideoTrack</h3>
3714 <table>
3715 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
3716 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
3717 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
3718 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
3719 <td style="font-size: 11px; padding: 5px;">Web API </td>
3720 <td style="font-size: 11px; padding: 5px;">Limitations </td>
3721 </tr>
3722
3723 <tr bgcolor="#fcfcfc">
3724 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
3725 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3726 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3727 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
3728 <td style="font-size: 11px; padding: 5px;">Ability to create synthetic strea m. </td>
3729 </tr>
3730
3731 <tr bgcolor="#fcfcfc">
3732 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Configure </td >
3733 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3734 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3735 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
3736 <td style="font-size: 11px; padding: 5px;"> </td>
3737 </tr>
3738
3739 <tr bgcolor="#fcfcfc">
3740 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetAttrib </td >
3741 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3742 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3743 <td style="font-size: 11px; padding: 5px;">MediaStreamSettings.width </td>
3744 <td style="font-size: 11px; padding: 5px;"> </td>
3745 </tr>
3746
3747 <tr bgcolor="#fcfcfc">
3748 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
3749 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3750 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3751 <td style="font-size: 11px; padding: 5px;">MediaStreamSettings.height </td>
3752 <td style="font-size: 11px; padding: 5px;"> </td>
3753 </tr>
3754
3755 <tr bgcolor="#fcfcfc">
3756 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
3757 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3758 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3759 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - no equiva lent to PP_MEDIASTREAMVIDEOTRACK_ATTRIB_BUFFERED_FRAMES</td>
3760 <td style="font-size: 11px; padding: 5px;"> </td>
3761 </tr>
3762
3763 <tr bgcolor="#fcfcfc">
3764 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
3765 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3766 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3767 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - no equiva lent to PP_MEDIASTREAMVIDEOTRACK_ATTRIB_FORMAT</td>
3768 <td style="font-size: 11px; padding: 5px;"> </td>
3769 </tr>
3770
3771 <tr bgcolor="#fcfcfc">
3772 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetId </td>
3773 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3774 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3775 <td style="font-size: 11px; padding: 5px;">MediaStream.id </td>
3776 <td style="font-size: 11px; padding: 5px;"> </td>
3777 </tr>
3778
3779 <tr bgcolor="#fcfcfc">
3780 <td style="font-weight: bold; font-size: 11px; padding: 5px;">HasEnded </td>
3781 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3782 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3783 <td style="font-size: 11px; padding: 5px;">MediaStream.ended </td>
3784 <td style="font-size: 11px; padding: 5px;"> </td>
3785 </tr>
3786
3787 <tr bgcolor="#fcfcfc">
3788 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetFrame </td>
3789 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3790 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3791 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
3792 <td style="font-size: 11px; padding: 5px;"> </td>
3793 </tr>
3794
3795 <tr bgcolor="#fcfcfc">
3796 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RecycleFrame < /td>
3797 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3798 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3799 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
3800 <td style="font-size: 11px; padding: 5px;"> </td>
3801 </tr>
3802
3803 <tr bgcolor="#fcfcfc">
3804 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Close </td>
3805 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3806 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3807 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
3808 <td style="font-size: 11px; padding: 5px;"> </td>
3809 </tr>
3810
3811 <tr bgcolor="#fcfcfc">
3812 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetEmptyFrame </td>
3813 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3814 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3815 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
3816 <td style="font-size: 11px; padding: 5px;"> </td>
3817 </tr>
3818
3819 <tr bgcolor="#fcfcfc">
3820 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PutFrame </td>
3821 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3822 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3823 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
3824 <td style="font-size: 11px; padding: 5px;"> </td>
3825 </tr>
3826
3827 </table>
3828 <h3>PPB_MessageLoop</h3>
3829 <table>
3830 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
3831 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
3832 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
3833 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
3834 <td style="font-size: 11px; padding: 5px;">Web API </td>
3835 <td style="font-size: 11px; padding: 5px;">Limitations </td>
3836 </tr>
3837
3838 <tr bgcolor="#fcfcfc">
3839 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
3840 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3841 <td style="font-size: 11px; padding: 5px;">N/A </td>
3842 <td style="font-size: 11px; padding: 5px;">Mostly moot, workers get an impli cit event loop. </td>
3843 <td style="font-size: 11px; padding: 5px;"> </td>
3844 </tr>
3845
3846 <tr bgcolor="#fcfcfc">
3847 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetForMainThre ad </td>
3848 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3849 <td style="font-size: 11px; padding: 5px;">N/A </td>
3850 <td style="font-size: 11px; padding: 5px;">Mostly moot, workers get an impli cit event loop. </td>
3851 <td style="font-size: 11px; padding: 5px;"> </td>
3852 </tr>
3853
3854 <tr bgcolor="#fcfcfc">
3855 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetCurrent </t d>
3856 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3857 <td style="font-size: 11px; padding: 5px;">N/A </td>
3858 <td style="font-size: 11px; padding: 5px;">Mostly moot, workers get an impli cit event loop. </td>
3859 <td style="font-size: 11px; padding: 5px;"> </td>
3860 </tr>
3861
3862 <tr bgcolor="#fcfcfc">
3863 <td style="font-weight: bold; font-size: 11px; padding: 5px;">AttachToCurren tThread </td>
3864 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3865 <td style="font-size: 11px; padding: 5px;">N/A </td>
3866 <td style="font-size: 11px; padding: 5px;">Mostly moot, workers get an impli cit event loop. </td>
3867 <td style="font-size: 11px; padding: 5px;"> </td>
3868 </tr>
3869
3870 <tr bgcolor="#fcfcfc">
3871 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Run </td>
3872 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3873 <td style="font-size: 11px; padding: 5px;">N/A </td>
3874 <td style="font-size: 11px; padding: 5px;">Mostly moot, workers get an impli cit event loop. </td>
3875 <td style="font-size: 11px; padding: 5px;"> </td>
3876 </tr>
3877
3878 <tr bgcolor="#fcfcfc">
3879 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PostWork </td>
3880 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3881 <td style="font-size: 11px; padding: 5px;">N/A </td>
3882 <td style="font-size: 11px; padding: 5px;">Mostly moot, workers get an impli cit event loop. </td>
3883 <td style="font-size: 11px; padding: 5px;"> </td>
3884 </tr>
3885
3886 <tr bgcolor="#fcfcfc">
3887 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PostQuit </td>
3888 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3889 <td style="font-size: 11px; padding: 5px;">N/A </td>
3890 <td style="font-size: 11px; padding: 5px;">Mostly moot, workers get an impli cit event loop. </td>
3891 <td style="font-size: 11px; padding: 5px;"> </td>
3892 </tr>
3893
3894 </table>
3895 <h3>PPB_Messaging</h3>
3896 <table>
3897 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
3898 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
3899 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
3900 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
3901 <td style="font-size: 11px; padding: 5px;">Web API </td>
3902 <td style="font-size: 11px; padding: 5px;">Limitations </td>
3903 </tr>
3904
3905 <tr bgcolor="#fcfcfc">
3906 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PostMessage </ td>
3907 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3908 <td style="font-size: 11px; padding: 5px;">N/A </td>
3909 <td style="font-size: 11px; padding: 5px;">Window.postMessage </td>
3910 <td style="font-size: 11px; padding: 5px;"> </td>
3911 </tr>
3912
3913 <tr bgcolor="#fcfcfc">
3914 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RegisterMessag eHandler </td>
3915 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3916 <td style="font-size: 11px; padding: 5px;">N/A </td>
3917 <td style="font-size: 11px; padding: 5px;">Window.addEventListener </td>
3918 <td style="font-size: 11px; padding: 5px;"> </td>
3919 </tr>
3920
3921 <tr bgcolor="#fcfcfc">
3922 <td style="font-weight: bold; font-size: 11px; padding: 5px;">UnregisterMess ageHandler </td>
3923 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3924 <td style="font-size: 11px; padding: 5px;">N/A </td>
3925 <td style="font-size: 11px; padding: 5px;">Window.removeEventListener </td>
3926 <td style="font-size: 11px; padding: 5px;"> </td>
3927 </tr>
3928
3929 </table>
3930 <h3>PPB_MouseCursor</h3>
3931 <table>
3932 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
3933 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
3934 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
3935 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
3936 <td style="font-size: 11px; padding: 5px;">Web API </td>
3937 <td style="font-size: 11px; padding: 5px;">Limitations </td>
3938 </tr>
3939
3940 <tr bgcolor="#fcfcfc">
3941 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetCursor </td >
3942 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3943 <td style="font-size: 11px; padding: 5px;">SDL </td>
3944 <td style="font-size: 11px; padding: 5px;">Element.style.cursor </td>
3945 <td style="font-size: 11px; padding: 5px;">Same set of stock cursors are sup ported.
3946 Custom cursors can be done with url(..).
3947 Dynamic custom cursors can be done with data URIs.
3948 CSS3 supports specifying the hotspot. </td>
3949 </tr>
3950
3951 </table>
3952 <h3>PPB_MouseLock</h3>
3953 <table>
3954 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
3955 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
3956 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
3957 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
3958 <td style="font-size: 11px; padding: 5px;">Web API </td>
3959 <td style="font-size: 11px; padding: 5px;">Limitations </td>
3960 </tr>
3961
3962 <tr bgcolor="#fcfcfc">
3963 <td style="font-weight: bold; font-size: 11px; padding: 5px;">LockMouse </td >
3964 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3965 <td style="font-size: 11px; padding: 5px;">SDL </td>
3966 <td style="font-size: 11px; padding: 5px;">Element.requestPointerLock </td>
3967 <td style="font-size: 11px; padding: 5px;"> </td>
3968 </tr>
3969
3970 <tr bgcolor="#fcfcfc">
3971 <td style="font-weight: bold; font-size: 11px; padding: 5px;">UnlockMouse </ td>
3972 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3973 <td style="font-size: 11px; padding: 5px;">SDL </td>
3974 <td style="font-size: 11px; padding: 5px;">Element.exitPointerLock </td>
3975 <td style="font-size: 11px; padding: 5px;"> </td>
3976 </tr>
3977
3978 </table>
3979 <h3>PPB_OpenGLES2</h3>
3980 <table>
3981 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
3982 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
3983 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
3984 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
3985 <td style="font-size: 11px; padding: 5px;">Web API </td>
3986 <td style="font-size: 11px; padding: 5px;">Limitations </td>
3987 </tr>
3988
3989 <tr bgcolor="#fcfcfc">
3990 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Several Method s </td>
3991 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3992 <td style="font-size: 11px; padding: 5px;">OpenGLES </td>
3993 <td style="font-size: 11px; padding: 5px;">Close to WebGL 1.0 in functionali ty. </td>
3994 <td style="font-size: 11px; padding: 5px;">TODO(bradnelson): more detail </t d>
3995 </tr>
3996
3997 <tr bgcolor="#fcfcfc">
3998 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
3999 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
4000 <td style="font-size: 11px; padding: 5px;"> </td>
4001 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - Without o ffscreen canvas, rendering must be done on the main thread.</td>
4002 <td style="font-size: 11px; padding: 5px;"> </td>
4003 </tr>
4004
4005 </table>
4006 <h3>PPB_TextInputController</h3>
4007 <table>
4008 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
4009 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
4010 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
4011 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
4012 <td style="font-size: 11px; padding: 5px;">Web API </td>
4013 <td style="font-size: 11px; padding: 5px;">Limitations </td>
4014 </tr>
4015
4016 <tr bgcolor="#fcfcfc">
4017 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetTextInputTy pe </td>
4018 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4019 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4020 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent hints to browser about canvas containing input.</td>
4021 <td style="font-size: 11px; padding: 5px;">Unity has specifically raised a d esire to either be able to hint in this fashion, or preferrably the ability to i ntercept and display IME events / output inline inside a canvas. </td>
4022 </tr>
4023
4024 <tr bgcolor="#fcfcfc">
4025 <td style="font-weight: bold; font-size: 11px; padding: 5px;">UpdateCaretPos ition </td>
4026 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4027 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4028 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent hints to browser about canvas containing input.</td>
4029 <td style="font-size: 11px; padding: 5px;"> </td>
4030 </tr>
4031
4032 <tr bgcolor="#fcfcfc">
4033 <td style="font-weight: bold; font-size: 11px; padding: 5px;">CancelComposit ionText </td>
4034 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4035 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4036 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent hints to browser about canvas containing input.</td>
4037 <td style="font-size: 11px; padding: 5px;"> </td>
4038 </tr>
4039
4040 <tr bgcolor="#fcfcfc">
4041 <td style="font-weight: bold; font-size: 11px; padding: 5px;">UpdateSurround ingText </td>
4042 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4043 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4044 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent hints to browser about canvas containing input.</td>
4045 <td style="font-size: 11px; padding: 5px;"> </td>
4046 </tr>
4047
4048 </table>
4049 <h3>PPB_URLLoader</h3>
4050 <table>
4051 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
4052 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
4053 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
4054 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
4055 <td style="font-size: 11px; padding: 5px;">Web API </td>
4056 <td style="font-size: 11px; padding: 5px;">Limitations </td>
4057 </tr>
4058
4059 <tr bgcolor="#fcfcfc">
4060 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
4061 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4062 <td style="font-size: 11px; padding: 5px;">embind </td>
4063 <td style="font-size: 11px; padding: 5px;">new XMLHttpRequest(); </td>
4064 <td style="font-size: 11px; padding: 5px;"> </td>
4065 </tr>
4066
4067 <tr bgcolor="#fcfcfc">
4068 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Open </td>
4069 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4070 <td style="font-size: 11px; padding: 5px;">embind </td>
4071 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest.open </td>
4072 <td style="font-size: 11px; padding: 5px;"> </td>
4073 </tr>
4074
4075 <tr bgcolor="#fcfcfc">
4076 <td style="font-weight: bold; font-size: 11px; padding: 5px;">FollowRedirect </td>
4077 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4078 <td style="font-size: 11px; padding: 5px;">embind </td>
4079 <td style="font-size: 11px; padding: 5px;">Request.redirect </td>
4080 <td style="font-size: 11px; padding: 5px;"> </td>
4081 </tr>
4082
4083 <tr bgcolor="#fcfcfc">
4084 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
4085 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4086 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4087 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No XMLHTT PRequest equivalent</td>
4088 <td style="font-size: 11px; padding: 5px;"> </td>
4089 </tr>
4090
4091 <tr bgcolor="#fcfcfc">
4092 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetUploadProgr ess </td>
4093 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4094 <td style="font-size: 11px; padding: 5px;">embind </td>
4095 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest 'progress' Event < /td>
4096 <td style="font-size: 11px; padding: 5px;"> </td>
4097 </tr>
4098
4099 <tr bgcolor="#fcfcfc">
4100 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
4101 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4102 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4103 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No Fetch API equivalent</td>
4104 <td style="font-size: 11px; padding: 5px;"> </td>
4105 </tr>
4106
4107 <tr bgcolor="#fcfcfc">
4108 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetDownloadPro gress </td>
4109 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4110 <td style="font-size: 11px; padding: 5px;">embind </td>
4111 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest 'progress' Event < /td>
4112 <td style="font-size: 11px; padding: 5px;"> </td>
4113 </tr>
4114
4115 <tr bgcolor="#fcfcfc">
4116 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
4117 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4118 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4119 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No Fetch API equivalent</td>
4120 <td style="font-size: 11px; padding: 5px;"> </td>
4121 </tr>
4122
4123 <tr bgcolor="#fcfcfc">
4124 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetResponseInf o </td>
4125 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4126 <td style="font-size: 11px; padding: 5px;">embind </td>
4127 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest.getAllResponseHead ers </td>
4128 <td style="font-size: 11px; padding: 5px;"> </td>
4129 </tr>
4130
4131 <tr bgcolor="#fcfcfc">
4132 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
4133 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4134 <td style="font-size: 11px; padding: 5px;">embind </td>
4135 <td style="font-size: 11px; padding: 5px;">Fetch Response.* </td>
4136 <td style="font-size: 11px; padding: 5px;"> </td>
4137 </tr>
4138
4139 <tr bgcolor="#fcfcfc">
4140 <td style="font-weight: bold; font-size: 11px; padding: 5px;">ReadResponseBo dy </td>
4141 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4142 <td style="font-size: 11px; padding: 5px;">embind </td>
4143 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest.response </td>
4144 <td style="font-size: 11px; padding: 5px;"> </td>
4145 </tr>
4146
4147 <tr bgcolor="#fcfcfc">
4148 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
4149 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4150 <td style="font-size: 11px; padding: 5px;">embind </td>
4151 <td style="font-size: 11px; padding: 5px;">Body.* (Response is a Body) </td>
4152 <td style="font-size: 11px; padding: 5px;"> </td>
4153 </tr>
4154
4155 <tr bgcolor="#fcfcfc">
4156 <td style="font-weight: bold; font-size: 11px; padding: 5px;">FinishStreamin gToFile </td>
4157 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4158 <td style="font-size: 11px; padding: 5px;">embind </td>
4159 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
4160 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest and Fetch both ass ume streaming to memory, rather than directly to a storage. </td>
4161 </tr>
4162
4163 <tr bgcolor="#fcfcfc">
4164 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Close </td>
4165 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4166 <td style="font-size: 11px; padding: 5px;">embind </td>
4167 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest.abort </td>
4168 <td style="font-size: 11px; padding: 5px;"> </td>
4169 </tr>
4170
4171 <tr bgcolor="#fcfcfc">
4172 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
4173 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4174 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4175 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No Fetch API equivalent</td>
4176 <td style="font-size: 11px; padding: 5px;"> </td>
4177 </tr>
4178
4179 </table>
4180 <h3>PPB_URLRequestInfo</h3>
4181 <table>
4182 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
4183 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
4184 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
4185 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
4186 <td style="font-size: 11px; padding: 5px;">Web API </td>
4187 <td style="font-size: 11px; padding: 5px;">Limitations </td>
4188 </tr>
4189
4190 <tr bgcolor="#fcfcfc">
4191 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
4192 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4193 <td style="font-size: 11px; padding: 5px;">embind </td>
4194 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest </td>
4195 <td style="font-size: 11px; padding: 5px;"> </td>
4196 </tr>
4197
4198 <tr bgcolor="#fcfcfc">
4199 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
4200 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4201 <td style="font-size: 11px; padding: 5px;">embind </td>
4202 <td style="font-size: 11px; padding: 5px;">Fetch Request </td>
4203 <td style="font-size: 11px; padding: 5px;">No way to stream to a file. </td>
4204 </tr>
4205
4206 <tr bgcolor="#fcfcfc">
4207 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetProperty </ td>
4208 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4209 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4210 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent for XMLHttpRequest</td>
4211 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest doesn't provide di rect ways to per-request limit following redirects, stream to a file, set referr er or credentials policy. </td>
4212 </tr>
4213
4214 <tr bgcolor="#fcfcfc">
4215 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
4216 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4217 <td style="font-size: 11px; padding: 5px;">embind </td>
4218 <td style="font-size: 11px; padding: 5px;">Request.* </td>
4219 <td style="font-size: 11px; padding: 5px;"> </td>
4220 </tr>
4221
4222 <tr bgcolor="#fcfcfc">
4223 <td style="font-weight: bold; font-size: 11px; padding: 5px;">AppendDataToBo dy </td>
4224 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4225 <td style="font-size: 11px; padding: 5px;">embind </td>
4226 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest.send </td>
4227 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - Both must have the whole body, rather than a chunk.</td>
4228 </tr>
4229
4230 <tr bgcolor="#fcfcfc">
4231 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
4232 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4233 <td style="font-size: 11px; padding: 5px;">embind </td>
4234 <td style="font-size: 11px; padding: 5px;">fetch(.., options:body) </td>
4235 <td style="font-size: 11px; padding: 5px;"> </td>
4236 </tr>
4237
4238 <tr bgcolor="#fcfcfc">
4239 <td style="font-weight: bold; font-size: 11px; padding: 5px;">AppendFileToBo dy </td>
4240 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4241 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4242 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
4243 <td style="font-size: 11px; padding: 5px;"> </td>
4244 </tr>
4245
4246 <tr bgcolor="#fcfcfc">
4247 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
4248 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4249 <td style="font-size: 11px; padding: 5px;">N/A </td>
4250 <td style="font-size: 11px; padding: 5px;">&lt;form&gt; </td>
4251 <td style="font-size: 11px; padding: 5px;">You can also read with FileReader and upload, but that's more like AppendDataToBody </td>
4252 </tr>
4253
4254 </table>
4255 <h3>PPB_URLResponseInfo</h3>
4256 <table>
4257 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
4258 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
4259 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
4260 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
4261 <td style="font-size: 11px; padding: 5px;">Web API </td>
4262 <td style="font-size: 11px; padding: 5px;">Limitations </td>
4263 </tr>
4264
4265 <tr bgcolor="#fcfcfc">
4266 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetProperty </ td>
4267 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4268 <td style="font-size: 11px; padding: 5px;">embind </td>
4269 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest.getAllResponseHead ers + others </td>
4270 <td style="font-size: 11px; padding: 5px;"> </td>
4271 </tr>
4272
4273 <tr bgcolor="#fcfcfc">
4274 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
4275 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4276 <td style="font-size: 11px; padding: 5px;">embind </td>
4277 <td style="font-size: 11px; padding: 5px;">Fetch Response.* </td>
4278 <td style="font-size: 11px; padding: 5px;"> </td>
4279 </tr>
4280
4281 <tr bgcolor="#fcfcfc">
4282 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetBodyAsFileR ef </td>
4283 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4284 <td style="font-size: 11px; padding: 5px;">embind </td>
4285 <td style="font-size: 11px; padding: 5px;">Fetch Response (Body) .blob() </t d>
4286 <td style="font-size: 11px; padding: 5px;">Assumes storage layer optimizes t ransfer. </td>
4287 </tr>
4288
4289 </table>
4290 <h3>PPB_Var</h3>
4291 <table>
4292 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
4293 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
4294 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
4295 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
4296 <td style="font-size: 11px; padding: 5px;">Web API </td>
4297 <td style="font-size: 11px; padding: 5px;">Limitations </td>
4298 </tr>
4299
4300 <tr bgcolor="#fcfcfc">
4301 <td style="font-weight: bold; font-size: 11px; padding: 5px;">VarFromUtf8 </ td>
4302 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4303 <td style="font-size: 11px; padding: 5px;">embind </td>
4304 <td style="font-size: 11px; padding: 5px;">TextDecoder.decode </td>
4305 <td style="font-size: 11px; padding: 5px;"> </td>
4306 </tr>
4307
4308 <tr bgcolor="#fcfcfc">
4309 <td style="font-weight: bold; font-size: 11px; padding: 5px;">VarToUtf8 </td >
4310 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4311 <td style="font-size: 11px; padding: 5px;">embind </td>
4312 <td style="font-size: 11px; padding: 5px;">TextEncoder.encode </td>
4313 <td style="font-size: 11px; padding: 5px;"> </td>
4314 </tr>
4315
4316 <tr bgcolor="#fcfcfc">
4317 <td style="font-weight: bold; font-size: 11px; padding: 5px;">VarFromResourc e </td>
4318 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4319 <td style="font-size: 11px; padding: 5px;">N/A </td>
4320 <td style="font-size: 11px; padding: 5px;">N/A </td>
4321 <td style="font-size: 11px; padding: 5px;"> </td>
4322 </tr>
4323
4324 <tr bgcolor="#fcfcfc">
4325 <td style="font-weight: bold; font-size: 11px; padding: 5px;">VarToResource </td>
4326 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4327 <td style="font-size: 11px; padding: 5px;">N/A </td>
4328 <td style="font-size: 11px; padding: 5px;">N/A </td>
4329 <td style="font-size: 11px; padding: 5px;"> </td>
4330 </tr>
4331
4332 </table>
4333 <h3>PPB_VarArray</h3>
4334 <table>
4335 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
4336 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
4337 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
4338 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
4339 <td style="font-size: 11px; padding: 5px;">Web API </td>
4340 <td style="font-size: 11px; padding: 5px;">Limitations </td>
4341 </tr>
4342
4343 <tr bgcolor="#fcfcfc">
4344 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Get </td>
4345 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4346 <td style="font-size: 11px; padding: 5px;">embind </td>
4347 <td style="font-size: 11px; padding: 5px;">Array[i] </td>
4348 <td style="font-size: 11px; padding: 5px;"> </td>
4349 </tr>
4350
4351 <tr bgcolor="#fcfcfc">
4352 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Set </td>
4353 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4354 <td style="font-size: 11px; padding: 5px;">embind </td>
4355 <td style="font-size: 11px; padding: 5px;">Array[i] = x </td>
4356 <td style="font-size: 11px; padding: 5px;"> </td>
4357 </tr>
4358
4359 <tr bgcolor="#fcfcfc">
4360 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetLength </td >
4361 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4362 <td style="font-size: 11px; padding: 5px;">embind </td>
4363 <td style="font-size: 11px; padding: 5px;">Array.length </td>
4364 <td style="font-size: 11px; padding: 5px;"> </td>
4365 </tr>
4366
4367 <tr bgcolor="#fcfcfc">
4368 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetLength </td >
4369 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4370 <td style="font-size: 11px; padding: 5px;">embind </td>
4371 <td style="font-size: 11px; padding: 5px;">Array.length = n </td>
4372 <td style="font-size: 11px; padding: 5px;"> </td>
4373 </tr>
4374
4375 </table>
4376 <h3>PPB_VarArrayBuffer</h3>
4377 <table>
4378 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
4379 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
4380 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
4381 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
4382 <td style="font-size: 11px; padding: 5px;">Web API </td>
4383 <td style="font-size: 11px; padding: 5px;">Limitations </td>
4384 </tr>
4385
4386 <tr bgcolor="#fcfcfc">
4387 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
4388 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4389 <td style="font-size: 11px; padding: 5px;">embind </td>
4390 <td style="font-size: 11px; padding: 5px;">new ArrayBuffer(n) </td>
4391 <td style="font-size: 11px; padding: 5px;"> </td>
4392 </tr>
4393
4394 <tr bgcolor="#fcfcfc">
4395 <td style="font-weight: bold; font-size: 11px; padding: 5px;">ByteLength </t d>
4396 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4397 <td style="font-size: 11px; padding: 5px;">embind </td>
4398 <td style="font-size: 11px; padding: 5px;">ArrayBuffer.byteLength </td>
4399 <td style="font-size: 11px; padding: 5px;"> </td>
4400 </tr>
4401
4402 <tr bgcolor="#fcfcfc">
4403 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Map </td>
4404 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4405 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4406 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
4407 <td style="font-size: 11px; padding: 5px;">Asm.js / Wasm modules are unable to map regions of an ArrayBuffer other than their single linear memory heap.
4408 Future multiple memories or memory mapping might improve this. </td>
4409 </tr>
4410
4411 <tr bgcolor="#fcfcfc">
4412 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Unmap </td>
4413 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4414 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4415 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
4416 <td style="font-size: 11px; padding: 5px;"> </td>
4417 </tr>
4418
4419 </table>
4420 <h3>PPB_VarDictionary</h3>
4421 <table>
4422 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
4423 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
4424 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
4425 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
4426 <td style="font-size: 11px; padding: 5px;">Web API </td>
4427 <td style="font-size: 11px; padding: 5px;">Limitations </td>
4428 </tr>
4429
4430 <tr bgcolor="#fcfcfc">
4431 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
4432 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4433 <td style="font-size: 11px; padding: 5px;">embind </td>
4434 <td style="font-size: 11px; padding: 5px;">{} </td>
4435 <td style="font-size: 11px; padding: 5px;"> </td>
4436 </tr>
4437
4438 <tr bgcolor="#fcfcfc">
4439 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Get </td>
4440 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4441 <td style="font-size: 11px; padding: 5px;">embind </td>
4442 <td style="font-size: 11px; padding: 5px;">&lt;Object&gt;[i] </td>
4443 <td style="font-size: 11px; padding: 5px;"> </td>
4444 </tr>
4445
4446 <tr bgcolor="#fcfcfc">
4447 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Set </td>
4448 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4449 <td style="font-size: 11px; padding: 5px;">embind </td>
4450 <td style="font-size: 11px; padding: 5px;">&lt;Object&gt;[i] = x </td>
4451 <td style="font-size: 11px; padding: 5px;"> </td>
4452 </tr>
4453
4454 <tr bgcolor="#fcfcfc">
4455 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Delete </td>
4456 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4457 <td style="font-size: 11px; padding: 5px;">embind </td>
4458 <td style="font-size: 11px; padding: 5px;">delete &lt;Object&gt;[i] </td>
4459 <td style="font-size: 11px; padding: 5px;"> </td>
4460 </tr>
4461
4462 <tr bgcolor="#fcfcfc">
4463 <td style="font-weight: bold; font-size: 11px; padding: 5px;">HasKey </td>
4464 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4465 <td style="font-size: 11px; padding: 5px;">embind </td>
4466 <td style="font-size: 11px; padding: 5px;">x in &lt;Object&gt; </td>
4467 <td style="font-size: 11px; padding: 5px;"> </td>
4468 </tr>
4469
4470 <tr bgcolor="#fcfcfc">
4471 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetKeys </td>
4472 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4473 <td style="font-size: 11px; padding: 5px;">embind </td>
4474 <td style="font-size: 11px; padding: 5px;">for (k in &lt;Object&gt;) {} </td >
4475 <td style="font-size: 11px; padding: 5px;">No literal equivalent, but it can be built. </td>
4476 </tr>
4477
4478 </table>
4479 <h3>PPB_VideoDecoder</h3>
4480 <table>
4481 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
4482 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
4483 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
4484 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
4485 <td style="font-size: 11px; padding: 5px;">Web API </td>
4486 <td style="font-size: 11px; padding: 5px;">Limitations </td>
4487 </tr>
4488
4489 <tr bgcolor="#fcfcfc">
4490 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
4491 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4492 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4493 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4494 <td style="font-size: 11px; padding: 5px;"> </td>
4495 </tr>
4496
4497 <tr bgcolor="#fcfcfc">
4498 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Initialize </t d>
4499 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4500 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4501 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4502 <td style="font-size: 11px; padding: 5px;"> </td>
4503 </tr>
4504
4505 <tr bgcolor="#fcfcfc">
4506 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Decode </td>
4507 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4508 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4509 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4510 <td style="font-size: 11px; padding: 5px;"> </td>
4511 </tr>
4512
4513 <tr bgcolor="#fcfcfc">
4514 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetPicture </t d>
4515 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4516 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4517 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4518 <td style="font-size: 11px; padding: 5px;"> </td>
4519 </tr>
4520
4521 <tr bgcolor="#fcfcfc">
4522 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RecyclePicture </td>
4523 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4524 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4525 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4526 <td style="font-size: 11px; padding: 5px;"> </td>
4527 </tr>
4528
4529 <tr bgcolor="#fcfcfc">
4530 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Flush </td>
4531 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4532 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4533 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4534 <td style="font-size: 11px; padding: 5px;"> </td>
4535 </tr>
4536
4537 <tr bgcolor="#fcfcfc">
4538 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Reset </td>
4539 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4540 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4541 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4542 <td style="font-size: 11px; padding: 5px;"> </td>
4543 </tr>
4544
4545 </table>
4546 <h3>PPB_VideoEncoder</h3>
4547 <table>
4548 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
4549 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
4550 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
4551 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
4552 <td style="font-size: 11px; padding: 5px;">Web API </td>
4553 <td style="font-size: 11px; padding: 5px;">Limitations </td>
4554 </tr>
4555
4556 <tr bgcolor="#fcfcfc">
4557 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
4558 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4559 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4560 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4561 <td style="font-size: 11px; padding: 5px;">Overlap with MediaRecorder API, b ut not exact. </td>
4562 </tr>
4563
4564 <tr bgcolor="#fcfcfc">
4565 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetSupportedPr ofiles </td>
4566 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4567 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4568 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4569 <td style="font-size: 11px; padding: 5px;"> </td>
4570 </tr>
4571
4572 <tr bgcolor="#fcfcfc">
4573 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Initialize </t d>
4574 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4575 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4576 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4577 <td style="font-size: 11px; padding: 5px;"> </td>
4578 </tr>
4579
4580 <tr bgcolor="#fcfcfc">
4581 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetFramesRequi red </td>
4582 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4583 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4584 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4585 <td style="font-size: 11px; padding: 5px;"> </td>
4586 </tr>
4587
4588 <tr bgcolor="#fcfcfc">
4589 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetFrameCodedS ize </td>
4590 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4591 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4592 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4593 <td style="font-size: 11px; padding: 5px;"> </td>
4594 </tr>
4595
4596 <tr bgcolor="#fcfcfc">
4597 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetVideoFrame </td>
4598 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4599 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4600 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4601 <td style="font-size: 11px; padding: 5px;"> </td>
4602 </tr>
4603
4604 <tr bgcolor="#fcfcfc">
4605 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Encode </td>
4606 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4607 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4608 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4609 <td style="font-size: 11px; padding: 5px;"> </td>
4610 </tr>
4611
4612 <tr bgcolor="#fcfcfc">
4613 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetBitstreamBu ffer </td>
4614 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4615 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4616 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4617 <td style="font-size: 11px; padding: 5px;"> </td>
4618 </tr>
4619
4620 <tr bgcolor="#fcfcfc">
4621 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RecycleBitstre amBuffer </td>
4622 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4623 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4624 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4625 <td style="font-size: 11px; padding: 5px;"> </td>
4626 </tr>
4627
4628 <tr bgcolor="#fcfcfc">
4629 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RequestEncodin gParametersChange </td>
4630 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4631 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4632 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4633 <td style="font-size: 11px; padding: 5px;"> </td>
4634 </tr>
4635
4636 <tr bgcolor="#fcfcfc">
4637 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Close </td>
4638 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4639 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4640 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4641 <td style="font-size: 11px; padding: 5px;"> </td>
4642 </tr>
4643
4644 </table>
4645 <h3>PPB_VideoFrame</h3>
4646 <table>
4647 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
4648 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
4649 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
4650 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
4651 <td style="font-size: 11px; padding: 5px;">Web API </td>
4652 <td style="font-size: 11px; padding: 5px;">Limitations </td>
4653 </tr>
4654
4655 <tr bgcolor="#fcfcfc">
4656 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetTimestamp < /td>
4657 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4658 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4659 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4660 <td style="font-size: 11px; padding: 5px;"> </td>
4661 </tr>
4662
4663 <tr bgcolor="#fcfcfc">
4664 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetTimestamp < /td>
4665 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4666 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4667 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4668 <td style="font-size: 11px; padding: 5px;"> </td>
4669 </tr>
4670
4671 <tr bgcolor="#fcfcfc">
4672 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetFormat </td >
4673 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4674 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4675 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4676 <td style="font-size: 11px; padding: 5px;"> </td>
4677 </tr>
4678
4679 <tr bgcolor="#fcfcfc">
4680 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetSize </td>
4681 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4682 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4683 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4684 <td style="font-size: 11px; padding: 5px;"> </td>
4685 </tr>
4686
4687 <tr bgcolor="#fcfcfc">
4688 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetDataBuffer </td>
4689 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4690 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4691 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4692 <td style="font-size: 11px; padding: 5px;"> </td>
4693 </tr>
4694
4695 <tr bgcolor="#fcfcfc">
4696 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetDataBufferS ize </td>
4697 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4698 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4699 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4700 <td style="font-size: 11px; padding: 5px;"> </td>
4701 </tr>
4702
4703 </table>
4704 <h3>PPB_View</h3>
4705 <table>
4706 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
4707 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
4708 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
4709 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
4710 <td style="font-size: 11px; padding: 5px;">Web API </td>
4711 <td style="font-size: 11px; padding: 5px;">Limitations </td>
4712 </tr>
4713
4714 <tr bgcolor="#fcfcfc">
4715 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetRect </td>
4716 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4717 <td style="font-size: 11px; padding: 5px;">embind </td>
4718 <td style="font-size: 11px; padding: 5px;">Element.getBoundingClientRect </t d>
4719 <td style="font-size: 11px; padding: 5px;"> </td>
4720 </tr>
4721
4722 <tr bgcolor="#fcfcfc">
4723 <td style="font-weight: bold; font-size: 11px; padding: 5px;">IsFullscreen < /td>
4724 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4725 <td style="font-size: 11px; padding: 5px;">embind </td>
4726 <td style="font-size: 11px; padding: 5px;">Document.fullScreenEnabled </td>
4727 <td style="font-size: 11px; padding: 5px;">Pertains to document instead of j ust single element. </td>
4728 </tr>
4729
4730 <tr bgcolor="#fcfcfc">
4731 <td style="font-weight: bold; font-size: 11px; padding: 5px;">IsVisible </td >
4732 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4733 <td style="font-size: 11px; padding: 5px;">embind </td>
4734 <td style="font-size: 11px; padding: 5px;">IntersectionObserver </td>
4735 <td style="font-size: 11px; padding: 5px;"> </td>
4736 </tr>
4737
4738 <tr bgcolor="#fcfcfc">
4739 <td style="font-weight: bold; font-size: 11px; padding: 5px;">IsPageVisible </td>
4740 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4741 <td style="font-size: 11px; padding: 5px;">embind </td>
4742 <td style="font-size: 11px; padding: 5px;">document.visibilityState </td>
4743 <td style="font-size: 11px; padding: 5px;"> </td>
4744 </tr>
4745
4746 <tr bgcolor="#fcfcfc">
4747 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetClipRect </ td>
4748 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4749 <td style="font-size: 11px; padding: 5px;">embind </td>
4750 <td style="font-size: 11px; padding: 5px;">IntersectionObserver </td>
4751 <td style="font-size: 11px; padding: 5px;"> </td>
4752 </tr>
4753
4754 <tr bgcolor="#fcfcfc">
4755 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetDeviceScale </td>
4756 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4757 <td style="font-size: 11px; padding: 5px;">embind </td>
4758 <td style="font-size: 11px; padding: 5px;">window.devicePixelRatio </td>
4759 <td style="font-size: 11px; padding: 5px;"> </td>
4760 </tr>
4761
4762 <tr bgcolor="#fcfcfc">
4763 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetCSSScale </ td>
4764 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4765 <td style="font-size: 11px; padding: 5px;">embind </td>
4766 <td style="font-size: 11px; padding: 5px;">&lt;Element&gt;.getBoundingClient Rect().width / &lt;Element&gt;.offsetWidth </td>
4767 <td style="font-size: 11px; padding: 5px;"> </td>
4768 </tr>
4769
4770 <tr bgcolor="#fcfcfc">
4771 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetScrollOffse t </td>
4772 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4773 <td style="font-size: 11px; padding: 5px;">embind </td>
4774 <td style="font-size: 11px; padding: 5px;">&lt;Element&gt;.scrollTop / &lt;E lement&gt;.scrollLeft </td>
4775 <td style="font-size: 11px; padding: 5px;"> </td>
4776 </tr>
4777
4778 </table>
4779 <h3>PPB_WebSocket</h3>
4780 <table>
4781 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
4782 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
4783 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
4784 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
4785 <td style="font-size: 11px; padding: 5px;">Web API </td>
4786 <td style="font-size: 11px; padding: 5px;">Limitations </td>
4787 </tr>
4788
4789 <tr bgcolor="#fcfcfc">
4790 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
4791 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4792 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4793 <td style="font-size: 11px; padding: 5px;">WebSocket.WebSocket </td>
4794 <td style="font-size: 11px; padding: 5px;"> </td>
4795 </tr>
4796
4797 <tr bgcolor="#fcfcfc">
4798 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Connect </td>
4799 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4800 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4801 <td style="font-size: 11px; padding: 5px;">WebSocket.WebSocket(url, ...)
4802 WebSocket 'open' Event </td>
4803 <td style="font-size: 11px; padding: 5px;"> </td>
4804 </tr>
4805
4806 <tr bgcolor="#fcfcfc">
4807 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Close </td>
4808 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4809 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4810 <td style="font-size: 11px; padding: 5px;">WebSocket.close </td>
4811 <td style="font-size: 11px; padding: 5px;"> </td>
4812 </tr>
4813
4814 <tr bgcolor="#fcfcfc">
4815 <td style="font-weight: bold; font-size: 11px; padding: 5px;">ReceiveMessage </td>
4816 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4817 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4818 <td style="font-size: 11px; padding: 5px;">WebSocket 'message' Event
4819 WebSocket 'error' Event
4820 WebSocket 'close' Event </td>
4821 <td style="font-size: 11px; padding: 5px;"> </td>
4822 </tr>
4823
4824 <tr bgcolor="#fcfcfc">
4825 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SendMessage </ td>
4826 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4827 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4828 <td style="font-size: 11px; padding: 5px;">WebSocket.send </td>
4829 <td style="font-size: 11px; padding: 5px;"> </td>
4830 </tr>
4831
4832 <tr bgcolor="#fcfcfc">
4833 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetBufferedAmo unt </td>
4834 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4835 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4836 <td style="font-size: 11px; padding: 5px;">WebSocket.bufferedAmount </td>
4837 <td style="font-size: 11px; padding: 5px;"> </td>
4838 </tr>
4839
4840 <tr bgcolor="#fcfcfc">
4841 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetCloseCode < /td>
4842 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4843 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4844 <td style="font-size: 11px; padding: 5px;">CloseEvent.code </td>
4845 <td style="font-size: 11px; padding: 5px;"> </td>
4846 </tr>
4847
4848 <tr bgcolor="#fcfcfc">
4849 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetCloseReason </td>
4850 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4851 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4852 <td style="font-size: 11px; padding: 5px;">CloseEvent.reason </td>
4853 <td style="font-size: 11px; padding: 5px;"> </td>
4854 </tr>
4855
4856 <tr bgcolor="#fcfcfc">
4857 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetCloseWasCle an </td>
4858 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4859 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4860 <td style="font-size: 11px; padding: 5px;">CloseEvent.wasClean </td>
4861 <td style="font-size: 11px; padding: 5px;"> </td>
4862 </tr>
4863
4864 <tr bgcolor="#fcfcfc">
4865 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetExtensions </td>
4866 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4867 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4868 <td style="font-size: 11px; padding: 5px;">WebSocket.extensions </td>
4869 <td style="font-size: 11px; padding: 5px;"> </td>
4870 </tr>
4871
4872 <tr bgcolor="#fcfcfc">
4873 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetProtocol </ td>
4874 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4875 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4876 <td style="font-size: 11px; padding: 5px;">WebSocket.protocol </td>
4877 <td style="font-size: 11px; padding: 5px;"> </td>
4878 </tr>
4879
4880 <tr bgcolor="#fcfcfc">
4881 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetReadyState </td>
4882 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4883 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4884 <td style="font-size: 11px; padding: 5px;">WebSocket.readyState </td>
4885 <td style="font-size: 11px; padding: 5px;"> </td>
4886 </tr>
4887
4888 <tr bgcolor="#fcfcfc">
4889 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetURL </td>
4890 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4891 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4892 <td style="font-size: 11px; padding: 5px;">WebSocket.url </td>
4893 <td style="font-size: 11px; padding: 5px;"> </td>
4894 </tr>
4895
4896 </table>
4897 <h3>PPP_Graphics3D</h3>
4898 <table>
4899 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
4900 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
4901 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
4902 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
4903 <td style="font-size: 11px; padding: 5px;">Web API </td>
4904 <td style="font-size: 11px; padding: 5px;">Limitations </td>
4905 </tr>
4906
4907 <tr bgcolor="#fcfcfc">
4908 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Graphics3DCont extLost </td>
4909 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4910 <td style="font-size: 11px; padding: 5px;">SDL </td>
4911 <td style="font-size: 11px; padding: 5px;">Canvas 'webglcontextlost' Event < /td>
4912 <td style="font-size: 11px; padding: 5px;"> </td>
4913 </tr>
4914
4915 </table>
4916 <h3>PPP_InputEvent</h3>
4917 <table>
4918 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
4919 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
4920 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
4921 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
4922 <td style="font-size: 11px; padding: 5px;">Web API </td>
4923 <td style="font-size: 11px; padding: 5px;">Limitations </td>
4924 </tr>
4925
4926 <tr bgcolor="#fcfcfc">
4927 <td style="font-weight: bold; font-size: 11px; padding: 5px;">HandleInputEve nt </td>
4928 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4929 <td style="font-size: 11px; padding: 5px;">SDL </td>
4930 <td style="font-size: 11px; padding: 5px;">Element.addEventListener </td>
4931 <td style="font-size: 11px; padding: 5px;"> </td>
4932 </tr>
4933
4934 </table>
4935 <h3>PPP_Instance</h3>
4936 <table>
4937 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
4938 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
4939 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
4940 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
4941 <td style="font-size: 11px; padding: 5px;">Web API </td>
4942 <td style="font-size: 11px; padding: 5px;">Limitations </td>
4943 </tr>
4944
4945 <tr bgcolor="#fcfcfc">
4946 <td style="font-weight: bold; font-size: 11px; padding: 5px;">DidCreate </td >
4947 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4948 <td style="font-size: 11px; padding: 5px;">N/A </td>
4949 <td style="font-size: 11px; padding: 5px;">&lt;Element&gt;[key] </td>
4950 <td style="font-size: 11px; padding: 5px;">General DOM access lets you fish out tag attributes </td>
4951 </tr>
4952
4953 <tr bgcolor="#fcfcfc">
4954 <td style="font-weight: bold; font-size: 11px; padding: 5px;">DidDestroy </t d>
4955 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4956 <td style="font-size: 11px; padding: 5px;">N/A </td>
4957 <td style="font-size: 11px; padding: 5px;">N/A </td>
4958 <td style="font-size: 11px; padding: 5px;">Not triggered for NaCl </td>
4959 </tr>
4960
4961 <tr bgcolor="#fcfcfc">
4962 <td style="font-weight: bold; font-size: 11px; padding: 5px;">DidChangeView </td>
4963 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4964 <td style="font-size: 11px; padding: 5px;">N/A </td>
4965 <td style="font-size: 11px; padding: 5px;">Element 'resize' Event </td>
4966 <td style="font-size: 11px; padding: 5px;"> </td>
4967 </tr>
4968
4969 <tr bgcolor="#fcfcfc">
4970 <td style="font-weight: bold; font-size: 11px; padding: 5px;">DidChangeFocus </td>
4971 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4972 <td style="font-size: 11px; padding: 5px;">N/A </td>
4973 <td style="font-size: 11px; padding: 5px;">Element 'focus', 'focusin', 'focu sout' Events </td>
4974 <td style="font-size: 11px; padding: 5px;"> </td>
4975 </tr>
4976
4977 <tr bgcolor="#fcfcfc">
4978 <td style="font-weight: bold; font-size: 11px; padding: 5px;">HandleDocument Load </td>
4979 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4980 <td style="font-size: 11px; padding: 5px;">N/A </td>
4981 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No way to register as a mime type handler</td>
4982 <td style="font-size: 11px; padding: 5px;">NaCl modules via apps + a manifes t entry can be set up to handle particular mime types. </td>
4983 </tr>
4984
4985 </table>
4986 <h3>PPP_MessageHandler</h3>
4987 <table>
4988 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
4989 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
4990 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
4991 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
4992 <td style="font-size: 11px; padding: 5px;">Web API </td>
4993 <td style="font-size: 11px; padding: 5px;">Limitations </td>
4994 </tr>
4995
4996 <tr bgcolor="#fcfcfc">
4997 <td style="font-weight: bold; font-size: 11px; padding: 5px;">HandleMessage </td>
4998 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4999 <td style="font-size: 11px; padding: 5px;">embind </td>
5000 <td style="font-size: 11px; padding: 5px;">MessagePort 'message' Event
5001 Window 'message' Event </td>
5002 <td style="font-size: 11px; padding: 5px;"> </td>
5003 </tr>
5004
5005 <tr bgcolor="#fcfcfc">
5006 <td style="font-weight: bold; font-size: 11px; padding: 5px;">HandleBlocking Message </td>
5007 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
5008 <td style="font-size: 11px; padding: 5px;">N/A </td>
5009 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
5010 <td style="font-size: 11px; padding: 5px;">Similar synchronization can be do ne off main thread with Atomics.wait. This was added to support emulation of syn chronous plugin APIs. </td>
5011 </tr>
5012
5013 </table>
5014 <h3>PPP_Messaging</h3>
5015 <table>
5016 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
5017 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
5018 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
5019 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
5020 <td style="font-size: 11px; padding: 5px;">Web API </td>
5021 <td style="font-size: 11px; padding: 5px;">Limitations </td>
5022 </tr>
5023
5024 <tr bgcolor="#fcfcfc">
5025 <td style="font-weight: bold; font-size: 11px; padding: 5px;">HandleMessage </td>
5026 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
5027 <td style="font-size: 11px; padding: 5px;">embind </td>
5028 <td style="font-size: 11px; padding: 5px;">MessagePort 'message' Event
5029 Window 'message' Event </td>
5030 <td style="font-size: 11px; padding: 5px;"> </td>
5031 </tr>
5032
5033 </table>
5034 <h3>PPP_MouseLock</h3>
5035 <table>
5036 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
5037 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
5038 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
5039 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
5040 <td style="font-size: 11px; padding: 5px;">Web API </td>
5041 <td style="font-size: 11px; padding: 5px;">Limitations </td>
5042 </tr>
5043
5044 <tr bgcolor="#fcfcfc">
5045 <td style="font-weight: bold; font-size: 11px; padding: 5px;">MouseLockLost </td>
5046 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
5047 <td style="font-size: 11px; padding: 5px;">SDL </td>
5048 <td style="font-size: 11px; padding: 5px;">Element 'pointerlockchange', 'poi nterlockerror' Events </td>
5049 <td style="font-size: 11px; padding: 5px;"> </td>
5050 </tr>
5051
5052 </table>
5053 <h2 id="ppapi-apps">PPAPI (Apps)</h2>
5054 <table>
5055 </table>
5056 <h3>PPB_HostResolver</h3>
5057 <table>
5058 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
5059 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
5060 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
5061 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
5062 <td style="font-size: 11px; padding: 5px;">Web API </td>
5063 <td style="font-size: 11px; padding: 5px;">Limitations </td>
5064 </tr>
5065
5066 <tr bgcolor="#fcfcfc">
5067 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
5068 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5069 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5070 <td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent</td>
5071 <td style="font-size: 11px; padding: 5px;"> </td>
5072 </tr>
5073
5074 <tr bgcolor="#fcfcfc">
5075 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Resolve </td>
5076 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5077 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5078 <td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent</td>
5079 <td style="font-size: 11px; padding: 5px;"> </td>
5080 </tr>
5081
5082 <tr bgcolor="#fcfcfc">
5083 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetCanonicalNa me </td>
5084 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5085 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5086 <td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent</td>
5087 <td style="font-size: 11px; padding: 5px;"> </td>
5088 </tr>
5089
5090 <tr bgcolor="#fcfcfc">
5091 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetNetAddressC ount </td>
5092 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5093 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5094 <td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent</td>
5095 <td style="font-size: 11px; padding: 5px;"> </td>
5096 </tr>
5097
5098 <tr bgcolor="#fcfcfc">
5099 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetNetAddress </td>
5100 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5101 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5102 <td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent</td>
5103 <td style="font-size: 11px; padding: 5px;"> </td>
5104 </tr>
5105
5106 </table>
5107 <h3>PPB_NetAddress</h3>
5108 <table>
5109 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
5110 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
5111 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
5112 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
5113 <td style="font-size: 11px; padding: 5px;">Web API </td>
5114 <td style="font-size: 11px; padding: 5px;">Limitations </td>
5115 </tr>
5116
5117 <tr bgcolor="#fcfcfc">
5118 <td style="font-weight: bold; font-size: 11px; padding: 5px;">CreateFromIPv4 Address </td>
5119 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5120 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5121 <td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent</td>
5122 <td style="font-size: 11px; padding: 5px;"> </td>
5123 </tr>
5124
5125 <tr bgcolor="#fcfcfc">
5126 <td style="font-weight: bold; font-size: 11px; padding: 5px;">CreateFromIPv6 Address </td>
5127 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5128 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5129 <td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent</td>
5130 <td style="font-size: 11px; padding: 5px;"> </td>
5131 </tr>
5132
5133 <tr bgcolor="#fcfcfc">
5134 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetFamily </td >
5135 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5136 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5137 <td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent</td>
5138 <td style="font-size: 11px; padding: 5px;"> </td>
5139 </tr>
5140
5141 <tr bgcolor="#fcfcfc">
5142 <td style="font-weight: bold; font-size: 11px; padding: 5px;">DescribeAsStri ng </td>
5143 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5144 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5145 <td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent</td>
5146 <td style="font-size: 11px; padding: 5px;"> </td>
5147 </tr>
5148
5149 <tr bgcolor="#fcfcfc">
5150 <td style="font-weight: bold; font-size: 11px; padding: 5px;">DescribeAsIPv4 Address </td>
5151 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5152 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5153 <td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent</td>
5154 <td style="font-size: 11px; padding: 5px;"> </td>
5155 </tr>
5156
5157 <tr bgcolor="#fcfcfc">
5158 <td style="font-weight: bold; font-size: 11px; padding: 5px;">DescribeAsIPv6 Address </td>
5159 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5160 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5161 <td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent</td>
5162 <td style="font-size: 11px; padding: 5px;"> </td>
5163 </tr>
5164
5165 </table>
5166 <h3>PPB_NetworkList</h3>
5167 <table>
5168 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
5169 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
5170 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
5171 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
5172 <td style="font-size: 11px; padding: 5px;">Web API </td>
5173 <td style="font-size: 11px; padding: 5px;">Limitations </td>
5174 </tr>
5175
5176 <tr bgcolor="#fcfcfc">
5177 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetCount </td>
5178 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5179 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5180 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
5181 <td style="font-size: 11px; padding: 5px;"> </td>
5182 </tr>
5183
5184 <tr bgcolor="#fcfcfc">
5185 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetName </td>
5186 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5187 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5188 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
5189 <td style="font-size: 11px; padding: 5px;"> </td>
5190 </tr>
5191
5192 <tr bgcolor="#fcfcfc">
5193 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetType </td>
5194 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5195 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5196 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
5197 <td style="font-size: 11px; padding: 5px;"> </td>
5198 </tr>
5199
5200 <tr bgcolor="#fcfcfc">
5201 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetState </td>
5202 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5203 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5204 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
5205 <td style="font-size: 11px; padding: 5px;"> </td>
5206 </tr>
5207
5208 <tr bgcolor="#fcfcfc">
5209 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetIpAddress < /td>
5210 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5211 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5212 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
5213 <td style="font-size: 11px; padding: 5px;"> </td>
5214 </tr>
5215
5216 <tr bgcolor="#fcfcfc">
5217 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetDisplayName </td>
5218 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5219 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5220 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
5221 <td style="font-size: 11px; padding: 5px;"> </td>
5222 </tr>
5223
5224 <tr bgcolor="#fcfcfc">
5225 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetMTU </td>
5226 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5227 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5228 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
5229 <td style="font-size: 11px; padding: 5px;"> </td>
5230 </tr>
5231
5232 </table>
5233 <h3>PPB_NetworkMonitor</h3>
5234 <table>
5235 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
5236 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
5237 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
5238 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
5239 <td style="font-size: 11px; padding: 5px;">Web API </td>
5240 <td style="font-size: 11px; padding: 5px;">Limitations </td>
5241 </tr>
5242
5243 <tr bgcolor="#fcfcfc">
5244 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
5245 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5246 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5247 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
5248 <td style="font-size: 11px; padding: 5px;"> </td>
5249 </tr>
5250
5251 <tr bgcolor="#fcfcfc">
5252 <td style="font-weight: bold; font-size: 11px; padding: 5px;">UpdateNetworkL ist </td>
5253 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5254 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5255 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
5256 <td style="font-size: 11px; padding: 5px;"> </td>
5257 </tr>
5258
5259 </table>
5260 <h3>PPB_NetworkProxy</h3>
5261 <table>
5262 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
5263 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
5264 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
5265 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
5266 <td style="font-size: 11px; padding: 5px;">Web API </td>
5267 <td style="font-size: 11px; padding: 5px;">Limitations </td>
5268 </tr>
5269
5270 <tr bgcolor="#fcfcfc">
5271 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetProxyForURL </td>
5272 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5273 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5274 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
5275 <td style="font-size: 11px; padding: 5px;"> </td>
5276 </tr>
5277
5278 </table>
5279 <h3>PPB_TCPSocket</h3>
5280 <table>
5281 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
5282 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
5283 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
5284 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
5285 <td style="font-size: 11px; padding: 5px;">Web API </td>
5286 <td style="font-size: 11px; padding: 5px;">Limitations </td>
5287 </tr>
5288
5289 <tr bgcolor="#fcfcfc">
5290 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
5291 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5292 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5293 <td style="font-size: 11px; padding: 5px;">chrome.sockets.tcp.create </td>
5294 <td style="font-size: 11px; padding: 5px;">WebSockets / WebRTC closest pract ical equivalent on open Web. </td>
5295 </tr>
5296
5297 <tr bgcolor="#fcfcfc">
5298 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
5299 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5300 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5301 <td style="font-size: 11px; padding: 5px;">chrome.sockets.tcpServer.create < /td>
5302 <td style="font-size: 11px; padding: 5px;"> </td>
5303 </tr>
5304
5305 <tr bgcolor="#fcfcfc">
5306 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Bind </td>
5307 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5308 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5309 <td style="font-size: 11px; padding: 5px;">chrome.sockets.tcpServer.create < /td>
5310 <td style="font-size: 11px; padding: 5px;"> </td>
5311 </tr>
5312
5313 <tr bgcolor="#fcfcfc">
5314 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Connect </td>
5315 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5316 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5317 <td style="font-size: 11px; padding: 5px;">chrome.sockets.tcp.connect </td>
5318 <td style="font-size: 11px; padding: 5px;"> </td>
5319 </tr>
5320
5321 <tr bgcolor="#fcfcfc">
5322 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetLocalAddres s </td>
5323 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5324 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5325 <td style="font-size: 11px; padding: 5px;">chrome.sockets.udp.SocketInfo </t d>
5326 <td style="font-size: 11px; padding: 5px;"> </td>
5327 </tr>
5328
5329 <tr bgcolor="#fcfcfc">
5330 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetRemoteAddre ss </td>
5331 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5332 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5333 <td style="font-size: 11px; padding: 5px;">chrome.sockets.udp.SocketInfo </t d>
5334 <td style="font-size: 11px; padding: 5px;"> </td>
5335 </tr>
5336
5337 <tr bgcolor="#fcfcfc">
5338 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Read </td>
5339 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5340 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5341 <td style="font-size: 11px; padding: 5px;">onReceive* Events </td>
5342 <td style="font-size: 11px; padding: 5px;"> </td>
5343 </tr>
5344
5345 <tr bgcolor="#fcfcfc">
5346 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Write </td>
5347 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5348 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5349 <td style="font-size: 11px; padding: 5px;">chrome.sockets.tcp.send </td>
5350 <td style="font-size: 11px; padding: 5px;"> </td>
5351 </tr>
5352
5353 <tr bgcolor="#fcfcfc">
5354 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Listen </td>
5355 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5356 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5357 <td style="font-size: 11px; padding: 5px;">chrome.sockets.tcpServer.listen < /td>
5358 <td style="font-size: 11px; padding: 5px;"> </td>
5359 </tr>
5360
5361 <tr bgcolor="#fcfcfc">
5362 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Accept </td>
5363 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5364 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5365 <td style="font-size: 11px; padding: 5px;">onAccept* Events </td>
5366 <td style="font-size: 11px; padding: 5px;"> </td>
5367 </tr>
5368
5369 <tr bgcolor="#fcfcfc">
5370 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Close </td>
5371 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5372 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5373 <td style="font-size: 11px; padding: 5px;">chrome.sockets.tcp.close </td>
5374 <td style="font-size: 11px; padding: 5px;"> </td>
5375 </tr>
5376
5377 <tr bgcolor="#fcfcfc">
5378 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
5379 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5380 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5381 <td style="font-size: 11px; padding: 5px;">chrome.sockets.tcpServer.close </ td>
5382 <td style="font-size: 11px; padding: 5px;"> </td>
5383 </tr>
5384
5385 <tr bgcolor="#fcfcfc">
5386 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetOption </td >
5387 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5388 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5389 <td style="font-size: 11px; padding: 5px;">chrome.sockets.tcp.update </td>
5390 <td style="font-size: 11px; padding: 5px;"> </td>
5391 </tr>
5392
5393 <tr bgcolor="#fcfcfc">
5394 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
5395 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5396 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5397 <td style="font-size: 11px; padding: 5px;">chrome.sockets.tcpServer.update < /td>
5398 <td style="font-size: 11px; padding: 5px;"> </td>
5399 </tr>
5400
5401 </table>
5402 <h3>PPB_UDPSocket</h3>
5403 <table>
5404 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
5405 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
5406 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
5407 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
5408 <td style="font-size: 11px; padding: 5px;">Web API </td>
5409 <td style="font-size: 11px; padding: 5px;">Limitations </td>
5410 </tr>
5411
5412 <tr bgcolor="#fcfcfc">
5413 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
5414 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5415 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5416 <td style="font-size: 11px; padding: 5px;">chrome.sockets.udp.create </td>
5417 <td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - WebRTC closest practical open Web equivalent</td>
5418 </tr>
5419
5420 <tr bgcolor="#fcfcfc">
5421 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Bind </td>
5422 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5423 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5424 <td style="font-size: 11px; padding: 5px;">chrome.sockets.udp.bind </td>
5425 <td style="font-size: 11px; padding: 5px;"> </td>
5426 </tr>
5427
5428 <tr bgcolor="#fcfcfc">
5429 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetBoundAddres s </td>
5430 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5431 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5432 <td style="font-size: 11px; padding: 5px;">chrome.sockets.udp.SocketInfo </t d>
5433 <td style="font-size: 11px; padding: 5px;"> </td>
5434 </tr>
5435
5436 <tr bgcolor="#fcfcfc">
5437 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RecvFrom </td>
5438 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5439 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5440 <td style="font-size: 11px; padding: 5px;">onReceive* Events </td>
5441 <td style="font-size: 11px; padding: 5px;"> </td>
5442 </tr>
5443
5444 <tr bgcolor="#fcfcfc">
5445 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SendTo </td>
5446 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5447 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5448 <td style="font-size: 11px; padding: 5px;">chrome.sockets.udp.send </td>
5449 <td style="font-size: 11px; padding: 5px;"> </td>
5450 </tr>
5451
5452 <tr bgcolor="#fcfcfc">
5453 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Close </td>
5454 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5455 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5456 <td style="font-size: 11px; padding: 5px;">chrome.sockets.udp.close </td>
5457 <td style="font-size: 11px; padding: 5px;"> </td>
5458 </tr>
5459
5460 <tr bgcolor="#fcfcfc">
5461 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetOption </td >
5462 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5463 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5464 <td style="font-size: 11px; padding: 5px;">chrome.sockets.udp.update </td>
5465 <td style="font-size: 11px; padding: 5px;"> </td>
5466 </tr>
5467
5468 <tr bgcolor="#fcfcfc">
5469 <td style="font-weight: bold; font-size: 11px; padding: 5px;">JoinGroup </td >
5470 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5471 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5472 <td style="font-size: 11px; padding: 5px;">chrome.sockets.udp.joinGroup </td >
5473 <td style="font-size: 11px; padding: 5px;"> </td>
5474 </tr>
5475
5476 <tr bgcolor="#fcfcfc">
5477 <td style="font-weight: bold; font-size: 11px; padding: 5px;">LeaveGroup </t d>
5478 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5479 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5480 <td style="font-size: 11px; padding: 5px;">chrome.sockets.udp.leaveGroup </t d>
5481 <td style="font-size: 11px; padding: 5px;"> </td>
5482 </tr>
5483
5484 </table>
5485 </section>
5486
5487 {{/partials.standard_nacl_article}}
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698