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

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, 6 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>Given the momentum of cross-browser WebAssembly support, we plan to focus our
7 native code efforts on WebAssembly going forward and plan to remove support for
8 PNaCl in Q1 2018 (except for Chrome Apps). We believe that the vibrant
9 ecosystem around <a class="reference external" href="http://webassembly.org">Web Assembly</a>
10 makes it a better fit for new and existing high-performance
11 web apps and that usage of PNaCl is sufficiently low to warrant deprecation.</p>
12 <p>We also recently announced the deprecation Q1 2018 of
13 <a class="reference external" href="https://blog.chromium.org/2016/08/from-chrom e-apps-to-web.html">Chrome Apps</a>
14 outside of ChromeOS.</p>
15 <h2 id="toolchain-migration">Toolchain Migration</h2>
16 <p>For the majority of (P)NaCl uses cases we recommend transitioning
17 from the NaCl SDK to <a class="reference external" href="http://webassembly.org/ getting-started/developers-guide/">Emscripten</a>.
18 Migration is likely to be reasonably straightforward
19 if your application is portable to Linux, uses
20 <a class="reference external" href="https://www.libsdl.org/">SDL</a>, or POSIX A PIs.
21 While direct support for NaCl / Pepper APIs in not available,
22 we&#8217;ve attempted to list Web API equivalents.
23 For more challenging porting cases, please reach out on
24 <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>
25 <h2 id="api-migration">API Migration</h2>
26 <p>We&#8217;ve outlined here the status of Web Platform substitutes for each
27 of the APIs exposed to (P)NaCl.
28 Additionally, the table lists the library or option in Emscripten
29 that offers the closest substitute.</p>
30 <p>We expect to add shared memory threads support to WebAssembly in 2017,
31 as threads are crucial to matching (P)NaCl&#8217;s most interesting use
32 cases. Migration items which assume forthcoming threads support
33 are marked below. If your application&#8217;s flow control relies heavily on blo cking
34 APIs, you may also find threads support is required for convenient porting.</p>
35 <p>While we&#8217;ve tried to be accurate in this table,
36 there are no doubt errors or omissions.
37 If you encounter one, please reach out to us on
38 <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>
39 <h2 id="ppapi">PPAPI</h2>
40 <table>
41 </table>
42 <h3>PPB_Audio</h3>
43 <table>
44 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
45 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
46 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
47 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
48 <td style="font-size: 11px; padding: 5px;">Web API </td>
49 <td style="font-size: 11px; padding: 5px;">Limitations </td>
50 </tr>
51
52 <tr bgcolor="#fcfcfc">
53 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
54 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
55 <td style="font-size: 11px; padding: 5px;">SDL (partial) </td>
56 <td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - AudioWorkletNode ROUGHLY equivalent</td>
57 <td style="font-size: 11px; padding: 5px;">Still being standardized. </td>
58 </tr>
59
60 <tr bgcolor="#fcfcfc">
61 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetCurrentConf ig </td>
62 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
63 <td style="font-size: 11px; padding: 5px;">SDL </td>
64 <td style="font-size: 11px; padding: 5px;">AudioContext.* (gets back setting s passed in) </td>
65 <td style="font-size: 11px; padding: 5px;"> </td>
66 </tr>
67
68 <tr bgcolor="#fcfcfc">
69 <td style="font-weight: bold; font-size: 11px; padding: 5px;">StartPlayback </td>
70 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
71 <td style="font-size: 11px; padding: 5px;">SDL </td>
72 <td style="font-size: 11px; padding: 5px;">AudioBufferSourceNode.start </td>
73 <td style="font-size: 11px; padding: 5px;"> </td>
74 </tr>
75
76 <tr bgcolor="#fcfcfc">
77 <td style="font-weight: bold; font-size: 11px; padding: 5px;">StopPlayback < /td>
78 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
79 <td style="font-size: 11px; padding: 5px;">SDL </td>
80 <td style="font-size: 11px; padding: 5px;">AudioBufferSourceNode.stop </td>
81 <td style="font-size: 11px; padding: 5px;"> </td>
82 </tr>
83
84 </table>
85 <h3>PPB_AudioBuffer</h3>
86 <table>
87 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
88 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
89 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
90 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
91 <td style="font-size: 11px; padding: 5px;">Web API </td>
92 <td style="font-size: 11px; padding: 5px;">Limitations </td>
93 </tr>
94
95 <tr bgcolor="#fcfcfc">
96 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetTimestamp < /td>
97 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
98 <td style="font-size: 11px; padding: 5px;">SDL </td>
99 <td style="font-size: 11px; padding: 5px;">AudioBufferSourceNode.start (para meter) </td>
100 <td style="font-size: 11px; padding: 5px;">Passed in each time instead of at tached to the buffer. </td>
101 </tr>
102
103 <tr bgcolor="#fcfcfc">
104 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetTimestamp < /td>
105 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
106 <td style="font-size: 11px; padding: 5px;">SDL </td>
107 <td style="font-size: 11px; padding: 5px;">AudioBufferSourceNode.start (para meter) </td>
108 <td style="font-size: 11px; padding: 5px;"> </td>
109 </tr>
110
111 <tr bgcolor="#fcfcfc">
112 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetSampleRate </td>
113 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
114 <td style="font-size: 11px; padding: 5px;">SDL </td>
115 <td style="font-size: 11px; padding: 5px;">AudioBuffer.sampleRate </td>
116 <td style="font-size: 11px; padding: 5px;"> </td>
117 </tr>
118
119 <tr bgcolor="#fcfcfc">
120 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetSampleSize </td>
121 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
122 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
123 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - WebAudio only uses 32-bit float, PPAPI does 16-bit int.</td>
124 <td style="font-size: 11px; padding: 5px;">PPAPI theoretically supports mult iple sampling sizes. In practice, it only supports 16-bit samples. Unfortunately , developers have requested 16-bit sample sizes to save on memory use. </td>
125 </tr>
126
127 <tr bgcolor="#fcfcfc">
128 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetNumberOfCha nnels </td>
129 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
130 <td style="font-size: 11px; padding: 5px;">SDL </td>
131 <td style="font-size: 11px; padding: 5px;">AudioBuffer.numberOfChannels </td >
132 <td style="font-size: 11px; padding: 5px;"> </td>
133 </tr>
134
135 <tr bgcolor="#fcfcfc">
136 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetDataBuffer </td>
137 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
138 <td style="font-size: 11px; padding: 5px;">SDL </td>
139 <td style="font-size: 11px; padding: 5px;">AudioBuffer.getChannelData </td>
140 <td style="font-size: 11px; padding: 5px;"> </td>
141 </tr>
142
143 <tr bgcolor="#fcfcfc">
144 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetBufferSize </td>
145 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
146 <td style="font-size: 11px; padding: 5px;">SDL </td>
147 <td style="font-size: 11px; padding: 5px;">AudioBuffer.length </td>
148 <td style="font-size: 11px; padding: 5px;"> </td>
149 </tr>
150
151 </table>
152 <h3>PPB_AudioConfig</h3>
153 <table>
154 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
155 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
156 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
157 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
158 <td style="font-size: 11px; padding: 5px;">Web API </td>
159 <td style="font-size: 11px; padding: 5px;">Limitations </td>
160 </tr>
161
162 <tr bgcolor="#fcfcfc">
163 <td style="font-weight: bold; font-size: 11px; padding: 5px;">CreateStereo16 Bit </td>
164 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
165 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
166 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - Only 32-b it float samples supported</td>
167 <td style="font-size: 11px; padding: 5px;"> </td>
168 </tr>
169
170 <tr bgcolor="#fcfcfc">
171 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetSampleRate </td>
172 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
173 <td style="font-size: 11px; padding: 5px;">SDL </td>
174 <td style="font-size: 11px; padding: 5px;">AudioContext.sampleRate </td>
175 <td style="font-size: 11px; padding: 5px;"> </td>
176 </tr>
177
178 <tr bgcolor="#fcfcfc">
179 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetSampleFrame Count </td>
180 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
181 <td style="font-size: 11px; padding: 5px;">SDL </td>
182 <td style="font-size: 11px; padding: 5px;">AudioBuffer.length </td>
183 <td style="font-size: 11px; padding: 5px;"> </td>
184 </tr>
185
186 <tr bgcolor="#fcfcfc">
187 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RecommendSampl eRate </td>
188 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
189 <td style="font-size: 11px; padding: 5px;">SDL </td>
190 <td style="font-size: 11px; padding: 5px;">AudioContext.sampleRate (from def ault construct) </td>
191 <td style="font-size: 11px; padding: 5px;">An AudioContext will have the pre ferred sampling rate by default. </td>
192 </tr>
193
194 <tr bgcolor="#fcfcfc">
195 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RecommendSampl eFrameCount </td>
196 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
197 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
198 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No mechan ism to get a recomended buffer size.</td>
199 <td style="font-size: 11px; padding: 5px;"> </td>
200 </tr>
201
202 </table>
203 <h3>PPB_Console</h3>
204 <table>
205 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
206 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
207 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
208 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
209 <td style="font-size: 11px; padding: 5px;">Web API </td>
210 <td style="font-size: 11px; padding: 5px;">Limitations </td>
211 </tr>
212
213 <tr bgcolor="#fcfcfc">
214 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Log </td>
215 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
216 <td style="font-size: 11px; padding: 5px;">utime </td>
217 <td style="font-size: 11px; padding: 5px;">console.log/warn/error/... </td>
218 <td style="font-size: 11px; padding: 5px;"> </td>
219 </tr>
220
221 <tr bgcolor="#fcfcfc">
222 <td style="font-weight: bold; font-size: 11px; padding: 5px;">LogWithSource </td>
223 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
224 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
225 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
226 <td style="font-size: 11px; padding: 5px;">PPAPI provides a way to override the source filename and line number in a console message.
227 (Though JS API provides way to style text). </td>
228 </tr>
229
230 </table>
231 <h3>PPB_Core</h3>
232 <table>
233 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
234 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
235 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
236 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
237 <td style="font-size: 11px; padding: 5px;">Web API </td>
238 <td style="font-size: 11px; padding: 5px;">Limitations </td>
239 </tr>
240
241 <tr bgcolor="#fcfcfc">
242 <td style="font-weight: bold; font-size: 11px; padding: 5px;">getTime </td>
243 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
244 <td style="font-size: 11px; padding: 5px;">utime </td>
245 <td style="font-size: 11px; padding: 5px;">new Date().getTime() </td>
246 <td style="font-size: 11px; padding: 5px;"> </td>
247 </tr>
248
249 <tr bgcolor="#fcfcfc">
250 <td style="font-weight: bold; font-size: 11px; padding: 5px;">getTimeTicks < /td>
251 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
252 <td style="font-size: 11px; padding: 5px;">utime </td>
253 <td style="font-size: 11px; padding: 5px;">new Date().getTime() </td>
254 <td style="font-size: 11px; padding: 5px;"> </td>
255 </tr>
256
257 <tr bgcolor="#fcfcfc">
258 <td style="font-weight: bold; font-size: 11px; padding: 5px;">IsMainThread < /td>
259 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
260 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
261 <td style="font-size: 11px; padding: 5px;">window.document !== undefined </t d>
262 <td style="font-size: 11px; padding: 5px;"> </td>
263 </tr>
264
265 <tr bgcolor="#fcfcfc">
266 <td style="font-weight: bold; font-size: 11px; padding: 5px;">CallOnMainThre ad </td>
267 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
268 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
269 <td style="font-size: 11px; padding: 5px;">Worker.postMessage + Atomics.wait </td>
270 <td style="font-size: 11px; padding: 5px;">Equivalent synchronization can be built. </td>
271 </tr>
272
273 </table>
274 <h3>PPB_FileIO</h3>
275 <table>
276 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
277 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
278 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
279 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
280 <td style="font-size: 11px; padding: 5px;">Web API </td>
281 <td style="font-size: 11px; padding: 5px;">Limitations </td>
282 </tr>
283
284 <tr bgcolor="#fcfcfc">
285 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
286 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
287 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
288 <td style="font-size: 11px; padding: 5px;">FileReader / FileWrite (Entry.cre ateReader / Entry.createWriter) </td>
289 <td style="font-size: 11px; padding: 5px;">Create and open are used differen tly, but the pieces are of equal power. </td>
290 </tr>
291
292 <tr bgcolor="#fcfcfc">
293 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Open </td>
294 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
295 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
296 <td style="font-size: 11px; padding: 5px;">FileReader / FileWrite (Entry.cre ateReader / Entry.createWriter) </td>
297 <td style="font-size: 11px; padding: 5px;"> </td>
298 </tr>
299
300 <tr bgcolor="#fcfcfc">
301 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Query </td>
302 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
303 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
304 <td style="font-size: 11px; padding: 5px;">Entry.getMetadata </td>
305 <td style="font-size: 11px; padding: 5px;"> </td>
306 </tr>
307
308 <tr bgcolor="#fcfcfc">
309 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Touch </td>
310 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
311 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
312 <td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent, but no access time either.</td>
313 <td style="font-size: 11px; padding: 5px;">Modify time can be bumped by writ ing. </td>
314 </tr>
315
316 <tr bgcolor="#fcfcfc">
317 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Read </td>
318 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
319 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
320 <td style="font-size: 11px; padding: 5px;">Entry.getFile + Blob.slice + File Reader.getBinaryData </td>
321 <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>
322 </tr>
323
324 <tr bgcolor="#fcfcfc">
325 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Write </td>
326 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
327 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
328 <td style="font-size: 11px; padding: 5px;">FileWriter.seek + FileWriter.writ e 'write*' Events </td>
329 <td style="font-size: 11px; padding: 5px;"> </td>
330 </tr>
331
332 <tr bgcolor="#fcfcfc">
333 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetLength </td >
334 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
335 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
336 <td style="font-size: 11px; padding: 5px;">FileWriter.truncate + 'write*' Ev ents </td>
337 <td style="font-size: 11px; padding: 5px;"> </td>
338 </tr>
339
340 <tr bgcolor="#fcfcfc">
341 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Flush </td>
342 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
343 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
344 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent, no way to flush.</td>
345 <td style="font-size: 11px; padding: 5px;"> </td>
346 </tr>
347
348 <tr bgcolor="#fcfcfc">
349 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Close </td>
350 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
351 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
352 <td style="font-size: 11px; padding: 5px;">No equivalent, open files and dir ectories are implicitly closed. </td>
353 <td style="font-size: 11px; padding: 5px;"> </td>
354 </tr>
355
356 <tr bgcolor="#fcfcfc">
357 <td style="font-weight: bold; font-size: 11px; padding: 5px;">ReadToArray </ td>
358 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
359 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
360 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent.</td>
361 <td style="font-size: 11px; padding: 5px;">Allows multiple subrange reads in parallel. </td>
362 </tr>
363
364 </table>
365 <h3>PPB_FileRef</h3>
366 <table>
367 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
368 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
369 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
370 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
371 <td style="font-size: 11px; padding: 5px;">Web API </td>
372 <td style="font-size: 11px; padding: 5px;">Limitations </td>
373 </tr>
374
375 <tr bgcolor="#fcfcfc">
376 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
377 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
378 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
379 <td style="font-size: 11px; padding: 5px;">Entry.getFile(..., {create:true}) </td>
380 <td style="font-size: 11px; padding: 5px;"> </td>
381 </tr>
382
383 <tr bgcolor="#fcfcfc">
384 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetFileSystemT ype </td>
385 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
386 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
387 <td style="font-size: 11px; padding: 5px;">FileSystem.type </td>
388 <td style="font-size: 11px; padding: 5px;"> </td>
389 </tr>
390
391 <tr bgcolor="#fcfcfc">
392 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetName </td>
393 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
394 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
395 <td style="font-size: 11px; padding: 5px;">Entry.name </td>
396 <td style="font-size: 11px; padding: 5px;"> </td>
397 </tr>
398
399 <tr bgcolor="#fcfcfc">
400 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetPath </td>
401 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
402 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
403 <td style="font-size: 11px; padding: 5px;">Entry.fullPath </td>
404 <td style="font-size: 11px; padding: 5px;"> </td>
405 </tr>
406
407 <tr bgcolor="#fcfcfc">
408 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetParent </td >
409 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
410 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
411 <td style="font-size: 11px; padding: 5px;">Entry.getParent </td>
412 <td style="font-size: 11px; padding: 5px;"> </td>
413 </tr>
414
415 <tr bgcolor="#fcfcfc">
416 <td style="font-weight: bold; font-size: 11px; padding: 5px;">MakeDirectory </td>
417 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
418 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
419 <td style="font-size: 11px; padding: 5px;">Entry.getDirectory(..., {create:t rue}) </td>
420 <td style="font-size: 11px; padding: 5px;"> </td>
421 </tr>
422
423 <tr bgcolor="#fcfcfc">
424 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Touch </td>
425 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
426 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
427 <td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent, but no access time either.</td>
428 <td style="font-size: 11px; padding: 5px;">Modify time can be bumped by writ ing. </td>
429 </tr>
430
431 <tr bgcolor="#fcfcfc">
432 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Delete </td>
433 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
434 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
435 <td style="font-size: 11px; padding: 5px;">Entry.remove </td>
436 <td style="font-size: 11px; padding: 5px;"> </td>
437 </tr>
438
439 <tr bgcolor="#fcfcfc">
440 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Rename </td>
441 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
442 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
443 <td style="font-size: 11px; padding: 5px;">Entry.moveTo </td>
444 <td style="font-size: 11px; padding: 5px;"> </td>
445 </tr>
446
447 <tr bgcolor="#fcfcfc">
448 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Query </td>
449 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
450 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
451 <td style="font-size: 11px; padding: 5px;">Entry.getMetadata </td>
452 <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>
453 </tr>
454
455 <tr bgcolor="#fcfcfc">
456 <td style="font-weight: bold; font-size: 11px; padding: 5px;">ReadDirectoryE ntries </td>
457 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
458 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
459 <td style="font-size: 11px; padding: 5px;">Directory.readEntries </td>
460 <td style="font-size: 11px; padding: 5px;"> </td>
461 </tr>
462
463 </table>
464 <h3>PPB_FileSystem</h3>
465 <table>
466 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
467 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
468 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
469 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
470 <td style="font-size: 11px; padding: 5px;">Web API </td>
471 <td style="font-size: 11px; padding: 5px;">Limitations </td>
472 </tr>
473
474 <tr bgcolor="#fcfcfc">
475 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
476 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
477 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
478 <td style="font-size: 11px; padding: 5px;">window.requestFileSystem </td>
479 <td style="font-size: 11px; padding: 5px;">JS API does both in one step </td >
480 </tr>
481
482 <tr bgcolor="#fcfcfc">
483 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Open </td>
484 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
485 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
486 <td style="font-size: 11px; padding: 5px;">window.requestFileSystem </td>
487 <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>
488 </tr>
489
490 <tr bgcolor="#fcfcfc">
491 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetType </td>
492 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
493 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
494 <td style="font-size: 11px; padding: 5px;">FileSystem.type </td>
495 <td style="font-size: 11px; padding: 5px;"> </td>
496 </tr>
497
498 </table>
499 <h3>PPB_Fullscreen</h3>
500 <table>
501 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
502 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
503 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
504 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
505 <td style="font-size: 11px; padding: 5px;">Web API </td>
506 <td style="font-size: 11px; padding: 5px;">Limitations </td>
507 </tr>
508
509 <tr bgcolor="#fcfcfc">
510 <td style="font-weight: bold; font-size: 11px; padding: 5px;">IsFullScreen < /td>
511 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
512 <td style="font-size: 11px; padding: 5px;">html5.h </td>
513 <td style="font-size: 11px; padding: 5px;">Document.fullscreenEnabled </td>
514 <td style="font-size: 11px; padding: 5px;"> </td>
515 </tr>
516
517 <tr bgcolor="#fcfcfc">
518 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetFullscreen </td>
519 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
520 <td style="font-size: 11px; padding: 5px;">html5.h </td>
521 <td style="font-size: 11px; padding: 5px;">Document.requestFullscreen </td>
522 <td style="font-size: 11px; padding: 5px;"> </td>
523 </tr>
524
525 <tr bgcolor="#fcfcfc">
526 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetScreenSize </td>
527 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
528 <td style="font-size: 11px; padding: 5px;">html5.h </td>
529 <td style="font-size: 11px; padding: 5px;">Document.exitFullscreen </td>
530 <td style="font-size: 11px; padding: 5px;"> </td>
531 </tr>
532
533 </table>
534 <h3>PPB_Gamepad</h3>
535 <table>
536 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
537 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
538 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
539 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
540 <td style="font-size: 11px; padding: 5px;">Web API </td>
541 <td style="font-size: 11px; padding: 5px;">Limitations </td>
542 </tr>
543
544 <tr bgcolor="#fcfcfc">
545 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Sample </td>
546 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
547 <td style="font-size: 11px; padding: 5px;">SDL </td>
548 <td style="font-size: 11px; padding: 5px;">Gamepad.* </td>
549 <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 spec'd ).</td>
550 </tr>
551
552 </table>
553 <h3>PPB_Graphics2D</h3>
554 <table>
555 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
556 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
557 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
558 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
559 <td style="font-size: 11px; padding: 5px;">Web API </td>
560 <td style="font-size: 11px; padding: 5px;">Limitations </td>
561 </tr>
562
563 <tr bgcolor="#fcfcfc">
564 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
565 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
566 <td style="font-size: 11px; padding: 5px;">SDL </td>
567 <td style="font-size: 11px; padding: 5px;">Canvas.getContext('2d') </td>
568 <td style="font-size: 11px; padding: 5px;"> </td>
569 </tr>
570
571 <tr bgcolor="#fcfcfc">
572 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Describe </td>
573 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
574 <td style="font-size: 11px; padding: 5px;">SDL </td>
575 <td style="font-size: 11px; padding: 5px;">Canvas.clientWidth + Canvas.clien tHeight </td>
576 <td style="font-size: 11px; padding: 5px;"> </td>
577 </tr>
578
579 <tr bgcolor="#fcfcfc">
580 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PaintImageData </td>
581 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
582 <td style="font-size: 11px; padding: 5px;">SDL </td>
583 <td style="font-size: 11px; padding: 5px;">CanvasRenderingContext2d.putImage Data </td>
584 <td style="font-size: 11px; padding: 5px;"> </td>
585 </tr>
586
587 <tr bgcolor="#fcfcfc">
588 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Scroll </td>
589 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
590 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
591 <td style="font-size: 11px; padding: 5px;">CanvasRenderingContext2d.scrollIn toView </td>
592 <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>
593 </tr>
594
595 <tr bgcolor="#fcfcfc">
596 <td style="font-weight: bold; font-size: 11px; padding: 5px;">ReplaceContent s </td>
597 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
598 <td style="font-size: 11px; padding: 5px;">SDL </td>
599 <td style="font-size: 11px; padding: 5px;">CanvasRenderingContext2d.drawImag e </td>
600 <td style="font-size: 11px; padding: 5px;"> </td>
601 </tr>
602
603 <tr bgcolor="#fcfcfc">
604 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Flush </td>
605 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
606 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
607 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - Only retu rning to the event loop triggers the flush.</td>
608 <td style="font-size: 11px; padding: 5px;"> </td>
609 </tr>
610
611 <tr bgcolor="#fcfcfc">
612 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetScale </td>
613 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
614 <td style="font-size: 11px; padding: 5px;">SDL </td>
615 <td style="font-size: 11px; padding: 5px;">CanvasRenderingContext2d.scale </ td>
616 <td style="font-size: 11px; padding: 5px;"> </td>
617 </tr>
618
619 <tr bgcolor="#fcfcfc">
620 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetScale </td>
621 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
622 <td style="font-size: 11px; padding: 5px;">SDL </td>
623 <td style="font-size: 11px; padding: 5px;">CanvasRenderingContext2d.currentT ransform </td>
624 <td style="font-size: 11px; padding: 5px;"> </td>
625 </tr>
626
627 <tr bgcolor="#fcfcfc">
628 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetLayerTransf orm </td>
629 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
630 <td style="font-size: 11px; padding: 5px;">SDL </td>
631 <td style="font-size: 11px; padding: 5px;">CanvasRenderingContext2d.setTrans form
632 CanvasRenderingContext2d.scale
633 CanvasRenderingContext2d.translate </td>
634 <td style="font-size: 11px; padding: 5px;"> </td>
635 </tr>
636
637 </table>
638 <h3>PPB_Graphics3D</h3>
639 <table>
640 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
641 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
642 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
643 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
644 <td style="font-size: 11px; padding: 5px;">Web API </td>
645 <td style="font-size: 11px; padding: 5px;">Limitations </td>
646 </tr>
647
648 <tr bgcolor="#fcfcfc">
649 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetAttribMaxVa lue </td>
650 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
651 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
652 <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>
653 <td style="font-size: 11px; padding: 5px;"> </td>
654 </tr>
655
656 <tr bgcolor="#fcfcfc">
657 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
658 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
659 <td style="font-size: 11px; padding: 5px;">SDL </td>
660 <td style="font-size: 11px; padding: 5px;">Canvas.getContext </td>
661 <td style="font-size: 11px; padding: 5px;"> </td>
662 </tr>
663
664 <tr bgcolor="#fcfcfc">
665 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetAttribs </t d>
666 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
667 <td style="font-size: 11px; padding: 5px;">SDL </td>
668 <td style="font-size: 11px; padding: 5px;">WebGLRenderingContext.getContextA ttributes </td>
669 <td style="font-size: 11px; padding: 5px;"> </td>
670 </tr>
671
672 <tr bgcolor="#fcfcfc">
673 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetAttribs </t d>
674 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
675 <td style="font-size: 11px; padding: 5px;">SDL </td>
676 <td style="font-size: 11px; padding: 5px;">Canvas.getContext(.., OPTIONS) </ td>
677 <td style="font-size: 11px; padding: 5px;"> </td>
678 </tr>
679
680 <tr bgcolor="#fcfcfc">
681 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetError </td>
682 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
683 <td style="font-size: 11px; padding: 5px;">SDL </td>
684 <td style="font-size: 11px; padding: 5px;">WebGLRenderingContext.getError </ td>
685 <td style="font-size: 11px; padding: 5px;"> </td>
686 </tr>
687
688 <tr bgcolor="#fcfcfc">
689 <td style="font-weight: bold; font-size: 11px; padding: 5px;">ResizeBuffers </td>
690 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
691 <td style="font-size: 11px; padding: 5px;">SDL </td>
692 <td style="font-size: 11px; padding: 5px;">Canvas.width = w; Canvas.height = h; </td>
693 <td style="font-size: 11px; padding: 5px;"> </td>
694 </tr>
695
696 <tr bgcolor="#fcfcfc">
697 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SwapBuffers </ td>
698 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
699 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
700 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No way to explicitly flip a frame, must return to the event loop.</td>
701 <td style="font-size: 11px; padding: 5px;"> </td>
702 </tr>
703
704 </table>
705 <h3>PPB_ImageData</h3>
706 <table>
707 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
708 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
709 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
710 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
711 <td style="font-size: 11px; padding: 5px;">Web API </td>
712 <td style="font-size: 11px; padding: 5px;">Limitations </td>
713 </tr>
714
715 <tr bgcolor="#fcfcfc">
716 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetNativeImage DataFormat </td>
717 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
718 <td style="font-size: 11px; padding: 5px;">SDL </td>
719 <td style="font-size: 11px; padding: 5px;">ImageData mandates RGBA order </t d>
720 <td style="font-size: 11px; padding: 5px;"> </td>
721 </tr>
722
723 <tr bgcolor="#fcfcfc">
724 <td style="font-weight: bold; font-size: 11px; padding: 5px;">IsImageDataFor matSupported </td>
725 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
726 <td style="font-size: 11px; padding: 5px;">SDL </td>
727 <td style="font-size: 11px; padding: 5px;">ImageData mandates RGBA order </t d>
728 <td style="font-size: 11px; padding: 5px;"> </td>
729 </tr>
730
731 <tr bgcolor="#fcfcfc">
732 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
733 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
734 <td style="font-size: 11px; padding: 5px;">SDL </td>
735 <td style="font-size: 11px; padding: 5px;">CanvasRenderingContext2d.createIm ageData </td>
736 <td style="font-size: 11px; padding: 5px;"> </td>
737 </tr>
738
739 <tr bgcolor="#fcfcfc">
740 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Describe </td>
741 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
742 <td style="font-size: 11px; padding: 5px;">SDL </td>
743 <td style="font-size: 11px; padding: 5px;">ImageData never has a stride </td >
744 <td style="font-size: 11px; padding: 5px;"> </td>
745 </tr>
746
747 <tr bgcolor="#fcfcfc">
748 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Map </td>
749 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
750 <td style="font-size: 11px; padding: 5px;">SDL </td>
751 <td style="font-size: 11px; padding: 5px;">ImageData.data </td>
752 <td style="font-size: 11px; padding: 5px;"> </td>
753 </tr>
754
755 <tr bgcolor="#fcfcfc">
756 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Unmap </td>
757 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
758 <td style="font-size: 11px; padding: 5px;">SDL </td>
759 <td style="font-size: 11px; padding: 5px;">ImageData.data </td>
760 <td style="font-size: 11px; padding: 5px;"> </td>
761 </tr>
762
763 </table>
764 <h3>PPB_InputEvent</h3>
765 <table>
766 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
767 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
768 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
769 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
770 <td style="font-size: 11px; padding: 5px;">Web API </td>
771 <td style="font-size: 11px; padding: 5px;">Limitations </td>
772 </tr>
773
774 <tr bgcolor="#fcfcfc">
775 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RequestInputEv ents </td>
776 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
777 <td style="font-size: 11px; padding: 5px;">SDL </td>
778 <td style="font-size: 11px; padding: 5px;">No direct equivalent </td>
779 <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>
780 </tr>
781
782 <tr bgcolor="#fcfcfc">
783 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RequestFilteri ngInputEvents </td>
784 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
785 <td style="font-size: 11px; padding: 5px;">SDL </td>
786 <td style="font-size: 11px; padding: 5px;">mouse* key* wheel* touch* composi tion* Events </td>
787 <td style="font-size: 11px; padding: 5px;"> </td>
788 </tr>
789
790 <tr bgcolor="#fcfcfc">
791 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
792 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
793 <td style="font-size: 11px; padding: 5px;">SDL </td>
794 <td style="font-size: 11px; padding: 5px;">Element.addEventListener </td>
795 <td style="font-size: 11px; padding: 5px;"> </td>
796 </tr>
797
798 <tr bgcolor="#fcfcfc">
799 <td style="font-weight: bold; font-size: 11px; padding: 5px;">ClearInputEven tRequest </td>
800 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
801 <td style="font-size: 11px; padding: 5px;">SDL </td>
802 <td style="font-size: 11px; padding: 5px;">Element.removeEventListener </td>
803 <td style="font-size: 11px; padding: 5px;"> </td>
804 </tr>
805
806 <tr bgcolor="#fcfcfc">
807 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetType </td>
808 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
809 <td style="font-size: 11px; padding: 5px;">SDL </td>
810 <td style="font-size: 11px; padding: 5px;">Event class descendants </td>
811 <td style="font-size: 11px; padding: 5px;"> </td>
812 </tr>
813
814 <tr bgcolor="#fcfcfc">
815 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetTimeStamp < /td>
816 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
817 <td style="font-size: 11px; padding: 5px;">SDL </td>
818 <td style="font-size: 11px; padding: 5px;">Event.timeStamp </td>
819 <td style="font-size: 11px; padding: 5px;"> </td>
820 </tr>
821
822 <tr bgcolor="#fcfcfc">
823 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetModifiers < /td>
824 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
825 <td style="font-size: 11px; padding: 5px;">SDL </td>
826 <td style="font-size: 11px; padding: 5px;">*Event.altKey/shiftKey/metaKey/ct rlKey </td>
827 <td style="font-size: 11px; padding: 5px;"> </td>
828 </tr>
829
830 </table>
831 <h3>PPB_MouseInputEvent</h3>
832 <table>
833 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
834 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
835 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
836 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
837 <td style="font-size: 11px; padding: 5px;">Web API </td>
838 <td style="font-size: 11px; padding: 5px;">Limitations </td>
839 </tr>
840
841 <tr bgcolor="#fcfcfc">
842 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
843 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
844 <td style="font-size: 11px; padding: 5px;">SDL </td>
845 <td style="font-size: 11px; padding: 5px;">MouseEvent </td>
846 <td style="font-size: 11px; padding: 5px;"> </td>
847 </tr>
848
849 <tr bgcolor="#fcfcfc">
850 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetButton </td >
851 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
852 <td style="font-size: 11px; padding: 5px;">SDL </td>
853 <td style="font-size: 11px; padding: 5px;">MouseEvent.button </td>
854 <td style="font-size: 11px; padding: 5px;"> </td>
855 </tr>
856
857 <tr bgcolor="#fcfcfc">
858 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetPosition </ td>
859 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
860 <td style="font-size: 11px; padding: 5px;">SDL </td>
861 <td style="font-size: 11px; padding: 5px;">MouseEvent.client*/page*/offset* </td>
862 <td style="font-size: 11px; padding: 5px;"> </td>
863 </tr>
864
865 <tr bgcolor="#fcfcfc">
866 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetClickCount </td>
867 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
868 <td style="font-size: 11px; padding: 5px;">SDL </td>
869 <td style="font-size: 11px; padding: 5px;">dblclick' vs 'mousedown' Events < /td>
870 <td style="font-size: 11px; padding: 5px;"> </td>
871 </tr>
872
873 <tr bgcolor="#fcfcfc">
874 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetMovement </ td>
875 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
876 <td style="font-size: 11px; padding: 5px;">SDL </td>
877 <td style="font-size: 11px; padding: 5px;">MouseEvent.movement* </td>
878 <td style="font-size: 11px; padding: 5px;"> </td>
879 </tr>
880
881 </table>
882 <h3>PPB_WheelInputEvent</h3>
883 <table>
884 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
885 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
886 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
887 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
888 <td style="font-size: 11px; padding: 5px;">Web API </td>
889 <td style="font-size: 11px; padding: 5px;">Limitations </td>
890 </tr>
891
892 <tr bgcolor="#fcfcfc">
893 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
894 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
895 <td style="font-size: 11px; padding: 5px;">SDL </td>
896 <td style="font-size: 11px; padding: 5px;">WheelEvent </td>
897 <td style="font-size: 11px; padding: 5px;"> </td>
898 </tr>
899
900 <tr bgcolor="#fcfcfc">
901 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetDelta </td>
902 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
903 <td style="font-size: 11px; padding: 5px;">SDL </td>
904 <td style="font-size: 11px; padding: 5px;">WheelEvent.delta* </td>
905 <td style="font-size: 11px; padding: 5px;"> </td>
906 </tr>
907
908 <tr bgcolor="#fcfcfc">
909 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetTicks </td>
910 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
911 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
912 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - deltaMode kinda of contains this info, but incompletely.</td>
913 <td style="font-size: 11px; padding: 5px;"> </td>
914 </tr>
915
916 <tr bgcolor="#fcfcfc">
917 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetScrollByPag e </td>
918 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
919 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
920 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - deltaMode kinda of contains this info, but incompletely.</td>
921 <td style="font-size: 11px; padding: 5px;"> </td>
922 </tr>
923
924 </table>
925 <h3>PPB_KeyboardInputEvent</h3>
926 <table>
927 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
928 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
929 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
930 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
931 <td style="font-size: 11px; padding: 5px;">Web API </td>
932 <td style="font-size: 11px; padding: 5px;">Limitations </td>
933 </tr>
934
935 <tr bgcolor="#fcfcfc">
936 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
937 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
938 <td style="font-size: 11px; padding: 5px;">SDL </td>
939 <td style="font-size: 11px; padding: 5px;">KeyboardEvent </td>
940 <td style="font-size: 11px; padding: 5px;"> </td>
941 </tr>
942
943 <tr bgcolor="#fcfcfc">
944 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetKeyCode </t d>
945 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
946 <td style="font-size: 11px; padding: 5px;">SDL </td>
947 <td style="font-size: 11px; padding: 5px;">KeyboardEvent.keyCode </td>
948 <td style="font-size: 11px; padding: 5px;"> </td>
949 </tr>
950
951 <tr bgcolor="#fcfcfc">
952 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetCharacterTe xt </td>
953 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
954 <td style="font-size: 11px; padding: 5px;">SDL </td>
955 <td style="font-size: 11px; padding: 5px;">KeyboardEvent.key </td>
956 <td style="font-size: 11px; padding: 5px;"> </td>
957 </tr>
958
959 <tr bgcolor="#fcfcfc">
960 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetCode </td>
961 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
962 <td style="font-size: 11px; padding: 5px;">SDL </td>
963 <td style="font-size: 11px; padding: 5px;">KeyboardEvent.code </td>
964 <td style="font-size: 11px; padding: 5px;"> </td>
965 </tr>
966
967 </table>
968 <h3>PPB_TouchInputEvent</h3>
969 <table>
970 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
971 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
972 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
973 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
974 <td style="font-size: 11px; padding: 5px;">Web API </td>
975 <td style="font-size: 11px; padding: 5px;">Limitations </td>
976 </tr>
977
978 <tr bgcolor="#fcfcfc">
979 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
980 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
981 <td style="font-size: 11px; padding: 5px;">SDL </td>
982 <td style="font-size: 11px; padding: 5px;">TouchEvent </td>
983 <td style="font-size: 11px; padding: 5px;"> </td>
984 </tr>
985
986 <tr bgcolor="#fcfcfc">
987 <td style="font-weight: bold; font-size: 11px; padding: 5px;">AddTouchPoint </td>
988 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
989 <td style="font-size: 11px; padding: 5px;">SDL </td>
990 <td style="font-size: 11px; padding: 5px;">TouchEvent.touches.push </td>
991 <td style="font-size: 11px; padding: 5px;"> </td>
992 </tr>
993
994 <tr bgcolor="#fcfcfc">
995 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetTouchCount </td>
996 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
997 <td style="font-size: 11px; padding: 5px;">SDL </td>
998 <td style="font-size: 11px; padding: 5px;">TouchEvent.touches.length </td>
999 <td style="font-size: 11px; padding: 5px;"> </td>
1000 </tr>
1001
1002 <tr bgcolor="#fcfcfc">
1003 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetTouchByInde x </td>
1004 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1005 <td style="font-size: 11px; padding: 5px;">SDL </td>
1006 <td style="font-size: 11px; padding: 5px;">TouchEvent.touches[i] </td>
1007 <td style="font-size: 11px; padding: 5px;"> </td>
1008 </tr>
1009
1010 <tr bgcolor="#fcfcfc">
1011 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetTouchById < /td>
1012 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1013 <td style="font-size: 11px; padding: 5px;">SDL </td>
1014 <td style="font-size: 11px; padding: 5px;">Touch.indentifer (to figure this out yourself) </td>
1015 <td style="font-size: 11px; padding: 5px;"> </td>
1016 </tr>
1017
1018 </table>
1019 <h3>PPB_IMEInputEvent</h3>
1020 <table>
1021 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
1022 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
1023 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
1024 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
1025 <td style="font-size: 11px; padding: 5px;">Web API </td>
1026 <td style="font-size: 11px; padding: 5px;">Limitations </td>
1027 </tr>
1028
1029 <tr bgcolor="#fcfcfc">
1030 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
1031 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1032 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1033 <td style="font-size: 11px; padding: 5px;">CompositionEvent </td>
1034 <td style="font-size: 11px; padding: 5px;"> </td>
1035 </tr>
1036
1037 <tr bgcolor="#fcfcfc">
1038 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetText </td>
1039 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1040 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1041 <td style="font-size: 11px; padding: 5px;">CompositionEvent.data </td>
1042 <td style="font-size: 11px; padding: 5px;"> </td>
1043 </tr>
1044
1045 <tr bgcolor="#fcfcfc">
1046 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetSegmentNumb er </td>
1047 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1048 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1049 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
1050 <td style="font-size: 11px; padding: 5px;"> </td>
1051 </tr>
1052
1053 <tr bgcolor="#fcfcfc">
1054 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetSegmentOffs et </td>
1055 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1056 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1057 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
1058 <td style="font-size: 11px; padding: 5px;"> </td>
1059 </tr>
1060
1061 <tr bgcolor="#fcfcfc">
1062 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetTargetSegme nt </td>
1063 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1064 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1065 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
1066 <td style="font-size: 11px; padding: 5px;"> </td>
1067 </tr>
1068
1069 <tr bgcolor="#fcfcfc">
1070 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetSelection < /td>
1071 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1072 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1073 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
1074 <td style="font-size: 11px; padding: 5px;"> </td>
1075 </tr>
1076
1077 </table>
1078 <h3>PPB_Instance</h3>
1079 <table>
1080 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
1081 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
1082 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
1083 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
1084 <td style="font-size: 11px; padding: 5px;">Web API </td>
1085 <td style="font-size: 11px; padding: 5px;">Limitations </td>
1086 </tr>
1087
1088 <tr bgcolor="#fcfcfc">
1089 <td style="font-weight: bold; font-size: 11px; padding: 5px;">BindGraphics < /td>
1090 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1091 <td style="font-size: 11px; padding: 5px;">SDL </td>
1092 <td style="font-size: 11px; padding: 5px;">Canvas.getContext (moot as bindin g is automatic). </td>
1093 <td style="font-size: 11px; padding: 5px;"> </td>
1094 </tr>
1095
1096 <tr bgcolor="#fcfcfc">
1097 <td style="font-weight: bold; font-size: 11px; padding: 5px;">IsFullFrame </ td>
1098 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1099 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1100 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent to mime type handlers.</td>
1101 <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>
1102 </tr>
1103
1104 </table>
1105 <h3>PPB_MediaStreamAudioTrack</h3>
1106 <table>
1107 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
1108 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
1109 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
1110 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
1111 <td style="font-size: 11px; padding: 5px;">Web API </td>
1112 <td style="font-size: 11px; padding: 5px;">Limitations </td>
1113 </tr>
1114
1115 <tr bgcolor="#fcfcfc">
1116 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Configure </td >
1117 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1118 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1119 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
1120 <td style="font-size: 11px; padding: 5px;"> </td>
1121 </tr>
1122
1123 <tr bgcolor="#fcfcfc">
1124 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetAttrib </td >
1125 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1126 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1127 <td style="font-size: 11px; padding: 5px;">MediaStreamSettings.channelCount </td>
1128 <td style="font-size: 11px; padding: 5px;"> </td>
1129 </tr>
1130
1131 <tr bgcolor="#fcfcfc">
1132 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
1133 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1134 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1135 <td style="font-size: 11px; padding: 5px;">MediaStreamSettings.sampleSize </ td>
1136 <td style="font-size: 11px; padding: 5px;"> </td>
1137 </tr>
1138
1139 <tr bgcolor="#fcfcfc">
1140 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
1141 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1142 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1143 <td style="font-size: 11px; padding: 5px;">MediaStreamSettings.sampleRate </ td>
1144 <td style="font-size: 11px; padding: 5px;"> </td>
1145 </tr>
1146
1147 <tr bgcolor="#fcfcfc">
1148 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
1149 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1150 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1151 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - no equiva lent to PP_MEDIASTREAMAUDIOTRACK_ATTRIB_BUFFERS</td>
1152 <td style="font-size: 11px; padding: 5px;"> </td>
1153 </tr>
1154
1155 <tr bgcolor="#fcfcfc">
1156 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
1157 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1158 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1159 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - no equiva lent to PP_MEDIASTREAMAUDIOTRACK_ATTRIB_DURATION</td>
1160 <td style="font-size: 11px; padding: 5px;"> </td>
1161 </tr>
1162
1163 <tr bgcolor="#fcfcfc">
1164 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetId </td>
1165 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1166 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1167 <td style="font-size: 11px; padding: 5px;">MediaStream.id </td>
1168 <td style="font-size: 11px; padding: 5px;"> </td>
1169 </tr>
1170
1171 <tr bgcolor="#fcfcfc">
1172 <td style="font-weight: bold; font-size: 11px; padding: 5px;">HasEnded </td>
1173 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1174 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1175 <td style="font-size: 11px; padding: 5px;">MediaStream.ended </td>
1176 <td style="font-size: 11px; padding: 5px;"> </td>
1177 </tr>
1178
1179 <tr bgcolor="#fcfcfc">
1180 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetBuffer </td >
1181 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1182 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1183 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
1184 <td style="font-size: 11px; padding: 5px;"> </td>
1185 </tr>
1186
1187 <tr bgcolor="#fcfcfc">
1188 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RecycleBuffer </td>
1189 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1190 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1191 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
1192 <td style="font-size: 11px; padding: 5px;"> </td>
1193 </tr>
1194
1195 <tr bgcolor="#fcfcfc">
1196 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Close </td>
1197 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1198 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1199 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
1200 <td style="font-size: 11px; padding: 5px;"> </td>
1201 </tr>
1202
1203 </table>
1204 <h3>PPB_MediaStreamVideoTrack</h3>
1205 <table>
1206 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
1207 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
1208 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
1209 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
1210 <td style="font-size: 11px; padding: 5px;">Web API </td>
1211 <td style="font-size: 11px; padding: 5px;">Limitations </td>
1212 </tr>
1213
1214 <tr bgcolor="#fcfcfc">
1215 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
1216 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1217 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1218 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
1219 <td style="font-size: 11px; padding: 5px;">Ability to create synthetic strea m. </td>
1220 </tr>
1221
1222 <tr bgcolor="#fcfcfc">
1223 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Configure </td >
1224 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1225 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1226 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
1227 <td style="font-size: 11px; padding: 5px;"> </td>
1228 </tr>
1229
1230 <tr bgcolor="#fcfcfc">
1231 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetAttrib </td >
1232 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1233 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1234 <td style="font-size: 11px; padding: 5px;">MediaStreamSettings.width </td>
1235 <td style="font-size: 11px; padding: 5px;"> </td>
1236 </tr>
1237
1238 <tr bgcolor="#fcfcfc">
1239 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
1240 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1241 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1242 <td style="font-size: 11px; padding: 5px;">MediaStreamSettings.height </td>
1243 <td style="font-size: 11px; padding: 5px;"> </td>
1244 </tr>
1245
1246 <tr bgcolor="#fcfcfc">
1247 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
1248 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1249 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1250 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - no equiva lent to PP_MEDIASTREAMVIDEOTRACK_ATTRIB_BUFFERED_FRAMES</td>
1251 <td style="font-size: 11px; padding: 5px;"> </td>
1252 </tr>
1253
1254 <tr bgcolor="#fcfcfc">
1255 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
1256 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1257 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1258 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - no equiva lent to PP_MEDIASTREAMVIDEOTRACK_ATTRIB_FORMAT</td>
1259 <td style="font-size: 11px; padding: 5px;"> </td>
1260 </tr>
1261
1262 <tr bgcolor="#fcfcfc">
1263 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetId </td>
1264 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1265 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1266 <td style="font-size: 11px; padding: 5px;">MediaStream.id </td>
1267 <td style="font-size: 11px; padding: 5px;"> </td>
1268 </tr>
1269
1270 <tr bgcolor="#fcfcfc">
1271 <td style="font-weight: bold; font-size: 11px; padding: 5px;">HasEnded </td>
1272 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1273 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1274 <td style="font-size: 11px; padding: 5px;">MediaStream.ended </td>
1275 <td style="font-size: 11px; padding: 5px;"> </td>
1276 </tr>
1277
1278 <tr bgcolor="#fcfcfc">
1279 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetFrame </td>
1280 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1281 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1282 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
1283 <td style="font-size: 11px; padding: 5px;"> </td>
1284 </tr>
1285
1286 <tr bgcolor="#fcfcfc">
1287 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RecycleFrame < /td>
1288 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1289 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1290 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
1291 <td style="font-size: 11px; padding: 5px;"> </td>
1292 </tr>
1293
1294 <tr bgcolor="#fcfcfc">
1295 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Close </td>
1296 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1297 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1298 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
1299 <td style="font-size: 11px; padding: 5px;"> </td>
1300 </tr>
1301
1302 <tr bgcolor="#fcfcfc">
1303 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetEmptyFrame </td>
1304 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1305 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1306 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
1307 <td style="font-size: 11px; padding: 5px;"> </td>
1308 </tr>
1309
1310 <tr bgcolor="#fcfcfc">
1311 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PutFrame </td>
1312 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1313 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1314 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
1315 <td style="font-size: 11px; padding: 5px;"> </td>
1316 </tr>
1317
1318 </table>
1319 <h3>PPB_MessageLoop</h3>
1320 <table>
1321 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
1322 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
1323 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
1324 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
1325 <td style="font-size: 11px; padding: 5px;">Web API </td>
1326 <td style="font-size: 11px; padding: 5px;">Limitations </td>
1327 </tr>
1328
1329 <tr bgcolor="#fcfcfc">
1330 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
1331 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1332 <td style="font-size: 11px; padding: 5px;">N/A </td>
1333 <td style="font-size: 11px; padding: 5px;">Mostly moot, workers get an impli cit event loop. </td>
1334 <td style="font-size: 11px; padding: 5px;"> </td>
1335 </tr>
1336
1337 <tr bgcolor="#fcfcfc">
1338 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetForMainThre ad </td>
1339 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1340 <td style="font-size: 11px; padding: 5px;">N/A </td>
1341 <td style="font-size: 11px; padding: 5px;">Mostly moot, workers get an impli cit event loop. </td>
1342 <td style="font-size: 11px; padding: 5px;"> </td>
1343 </tr>
1344
1345 <tr bgcolor="#fcfcfc">
1346 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetCurrent </t d>
1347 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1348 <td style="font-size: 11px; padding: 5px;">N/A </td>
1349 <td style="font-size: 11px; padding: 5px;">Mostly moot, workers get an impli cit event loop. </td>
1350 <td style="font-size: 11px; padding: 5px;"> </td>
1351 </tr>
1352
1353 <tr bgcolor="#fcfcfc">
1354 <td style="font-weight: bold; font-size: 11px; padding: 5px;">AttachToCurren tThread </td>
1355 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1356 <td style="font-size: 11px; padding: 5px;">N/A </td>
1357 <td style="font-size: 11px; padding: 5px;">Mostly moot, workers get an impli cit event loop. </td>
1358 <td style="font-size: 11px; padding: 5px;"> </td>
1359 </tr>
1360
1361 <tr bgcolor="#fcfcfc">
1362 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Run </td>
1363 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1364 <td style="font-size: 11px; padding: 5px;">N/A </td>
1365 <td style="font-size: 11px; padding: 5px;">Mostly moot, workers get an impli cit event loop. </td>
1366 <td style="font-size: 11px; padding: 5px;"> </td>
1367 </tr>
1368
1369 <tr bgcolor="#fcfcfc">
1370 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PostWork </td>
1371 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1372 <td style="font-size: 11px; padding: 5px;">N/A </td>
1373 <td style="font-size: 11px; padding: 5px;">Mostly moot, workers get an impli cit event loop. </td>
1374 <td style="font-size: 11px; padding: 5px;"> </td>
1375 </tr>
1376
1377 <tr bgcolor="#fcfcfc">
1378 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PostQuit </td>
1379 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1380 <td style="font-size: 11px; padding: 5px;">N/A </td>
1381 <td style="font-size: 11px; padding: 5px;">Mostly moot, workers get an impli cit event loop. </td>
1382 <td style="font-size: 11px; padding: 5px;"> </td>
1383 </tr>
1384
1385 </table>
1386 <h3>PPB_Messaging</h3>
1387 <table>
1388 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
1389 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
1390 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
1391 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
1392 <td style="font-size: 11px; padding: 5px;">Web API </td>
1393 <td style="font-size: 11px; padding: 5px;">Limitations </td>
1394 </tr>
1395
1396 <tr bgcolor="#fcfcfc">
1397 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PostMessage </ td>
1398 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1399 <td style="font-size: 11px; padding: 5px;">N/A </td>
1400 <td style="font-size: 11px; padding: 5px;">Window.postMessage </td>
1401 <td style="font-size: 11px; padding: 5px;"> </td>
1402 </tr>
1403
1404 <tr bgcolor="#fcfcfc">
1405 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RegisterMessag eHandler </td>
1406 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1407 <td style="font-size: 11px; padding: 5px;">N/A </td>
1408 <td style="font-size: 11px; padding: 5px;">Window.addEventListener </td>
1409 <td style="font-size: 11px; padding: 5px;"> </td>
1410 </tr>
1411
1412 <tr bgcolor="#fcfcfc">
1413 <td style="font-weight: bold; font-size: 11px; padding: 5px;">UnregisterMess ageHandler </td>
1414 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1415 <td style="font-size: 11px; padding: 5px;">N/A </td>
1416 <td style="font-size: 11px; padding: 5px;">Window.removeEventListener </td>
1417 <td style="font-size: 11px; padding: 5px;"> </td>
1418 </tr>
1419
1420 </table>
1421 <h3>PPB_MouseCursor</h3>
1422 <table>
1423 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
1424 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
1425 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
1426 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
1427 <td style="font-size: 11px; padding: 5px;">Web API </td>
1428 <td style="font-size: 11px; padding: 5px;">Limitations </td>
1429 </tr>
1430
1431 <tr bgcolor="#fcfcfc">
1432 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetCursor </td >
1433 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1434 <td style="font-size: 11px; padding: 5px;">SDL </td>
1435 <td style="font-size: 11px; padding: 5px;">Element.style.cursor </td>
1436 <td style="font-size: 11px; padding: 5px;">Same set of stock cursors are sup ported.
1437 Custom cursors can be done with url(..).
1438 Dynamic custom cursors can be done with data URIs.
1439 CSS3 supports specifying the hotspot. </td>
1440 </tr>
1441
1442 </table>
1443 <h3>PPB_MouseLock</h3>
1444 <table>
1445 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
1446 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
1447 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
1448 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
1449 <td style="font-size: 11px; padding: 5px;">Web API </td>
1450 <td style="font-size: 11px; padding: 5px;">Limitations </td>
1451 </tr>
1452
1453 <tr bgcolor="#fcfcfc">
1454 <td style="font-weight: bold; font-size: 11px; padding: 5px;">LockMouse </td >
1455 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1456 <td style="font-size: 11px; padding: 5px;">SDL </td>
1457 <td style="font-size: 11px; padding: 5px;">Element.requestPointerLock </td>
1458 <td style="font-size: 11px; padding: 5px;"> </td>
1459 </tr>
1460
1461 <tr bgcolor="#fcfcfc">
1462 <td style="font-weight: bold; font-size: 11px; padding: 5px;">UnlockMouse </ td>
1463 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1464 <td style="font-size: 11px; padding: 5px;">SDL </td>
1465 <td style="font-size: 11px; padding: 5px;">Element.exitPointerLock </td>
1466 <td style="font-size: 11px; padding: 5px;"> </td>
1467 </tr>
1468
1469 </table>
1470 <h3>PPB_OpenGLES2</h3>
1471 <table>
1472 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
1473 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
1474 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
1475 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
1476 <td style="font-size: 11px; padding: 5px;">Web API </td>
1477 <td style="font-size: 11px; padding: 5px;">Limitations </td>
1478 </tr>
1479
1480 <tr bgcolor="#fcfcfc">
1481 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Several Method s </td>
1482 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1483 <td style="font-size: 11px; padding: 5px;">OpenGLES </td>
1484 <td style="font-size: 11px; padding: 5px;">Close to WebGL 1.0 in functionali ty. </td>
1485 <td style="font-size: 11px; padding: 5px;"> </td>
1486 </tr>
1487
1488 <tr bgcolor="#fcfcfc">
1489 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
1490 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
1491 <td style="font-size: 11px; padding: 5px;"> </td>
1492 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - Without o ffscreen canvas, rendering must be done on the main thread.</td>
1493 <td style="font-size: 11px; padding: 5px;"> </td>
1494 </tr>
1495
1496 </table>
1497 <h3>PPB_TextInputController</h3>
1498 <table>
1499 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
1500 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
1501 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
1502 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
1503 <td style="font-size: 11px; padding: 5px;">Web API </td>
1504 <td style="font-size: 11px; padding: 5px;">Limitations </td>
1505 </tr>
1506
1507 <tr bgcolor="#fcfcfc">
1508 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetTextInputTy pe </td>
1509 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1510 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1511 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent hints to browser about canvas containing input.</td>
1512 <td style="font-size: 11px; padding: 5px;">Some developers would like to eit her be able to hint in this fashion, or preferrably the ability to intercept and display IME events / output inline inside a canvas. </td>
1513 </tr>
1514
1515 <tr bgcolor="#fcfcfc">
1516 <td style="font-weight: bold; font-size: 11px; padding: 5px;">UpdateCaretPos ition </td>
1517 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1518 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1519 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent hints to browser about canvas containing input.</td>
1520 <td style="font-size: 11px; padding: 5px;"> </td>
1521 </tr>
1522
1523 <tr bgcolor="#fcfcfc">
1524 <td style="font-weight: bold; font-size: 11px; padding: 5px;">CancelComposit ionText </td>
1525 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1526 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1527 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent hints to browser about canvas containing input.</td>
1528 <td style="font-size: 11px; padding: 5px;"> </td>
1529 </tr>
1530
1531 <tr bgcolor="#fcfcfc">
1532 <td style="font-weight: bold; font-size: 11px; padding: 5px;">UpdateSurround ingText </td>
1533 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1534 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1535 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent hints to browser about canvas containing input.</td>
1536 <td style="font-size: 11px; padding: 5px;"> </td>
1537 </tr>
1538
1539 </table>
1540 <h3>PPB_URLLoader</h3>
1541 <table>
1542 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
1543 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
1544 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
1545 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
1546 <td style="font-size: 11px; padding: 5px;">Web API </td>
1547 <td style="font-size: 11px; padding: 5px;">Limitations </td>
1548 </tr>
1549
1550 <tr bgcolor="#fcfcfc">
1551 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
1552 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1553 <td style="font-size: 11px; padding: 5px;">embind </td>
1554 <td style="font-size: 11px; padding: 5px;">new XMLHttpRequest(); </td>
1555 <td style="font-size: 11px; padding: 5px;"> </td>
1556 </tr>
1557
1558 <tr bgcolor="#fcfcfc">
1559 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Open </td>
1560 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1561 <td style="font-size: 11px; padding: 5px;">embind </td>
1562 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest.open </td>
1563 <td style="font-size: 11px; padding: 5px;"> </td>
1564 </tr>
1565
1566 <tr bgcolor="#fcfcfc">
1567 <td style="font-weight: bold; font-size: 11px; padding: 5px;">FollowRedirect </td>
1568 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1569 <td style="font-size: 11px; padding: 5px;">embind </td>
1570 <td style="font-size: 11px; padding: 5px;">Request.redirect </td>
1571 <td style="font-size: 11px; padding: 5px;"> </td>
1572 </tr>
1573
1574 <tr bgcolor="#fcfcfc">
1575 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
1576 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1577 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1578 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No XMLHTT PRequest equivalent</td>
1579 <td style="font-size: 11px; padding: 5px;"> </td>
1580 </tr>
1581
1582 <tr bgcolor="#fcfcfc">
1583 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetUploadProgr ess </td>
1584 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1585 <td style="font-size: 11px; padding: 5px;">embind </td>
1586 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest 'progress' Event < /td>
1587 <td style="font-size: 11px; padding: 5px;"> </td>
1588 </tr>
1589
1590 <tr bgcolor="#fcfcfc">
1591 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
1592 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1593 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1594 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No Fetch API equivalent</td>
1595 <td style="font-size: 11px; padding: 5px;"> </td>
1596 </tr>
1597
1598 <tr bgcolor="#fcfcfc">
1599 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetDownloadPro gress </td>
1600 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1601 <td style="font-size: 11px; padding: 5px;">embind </td>
1602 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest 'progress' Event < /td>
1603 <td style="font-size: 11px; padding: 5px;"> </td>
1604 </tr>
1605
1606 <tr bgcolor="#fcfcfc">
1607 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
1608 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1609 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1610 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No Fetch API equivalent</td>
1611 <td style="font-size: 11px; padding: 5px;"> </td>
1612 </tr>
1613
1614 <tr bgcolor="#fcfcfc">
1615 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetResponseInf o </td>
1616 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1617 <td style="font-size: 11px; padding: 5px;">embind </td>
1618 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest.getAllResponseHead ers </td>
1619 <td style="font-size: 11px; padding: 5px;"> </td>
1620 </tr>
1621
1622 <tr bgcolor="#fcfcfc">
1623 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
1624 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1625 <td style="font-size: 11px; padding: 5px;">embind </td>
1626 <td style="font-size: 11px; padding: 5px;">Fetch Response.* </td>
1627 <td style="font-size: 11px; padding: 5px;"> </td>
1628 </tr>
1629
1630 <tr bgcolor="#fcfcfc">
1631 <td style="font-weight: bold; font-size: 11px; padding: 5px;">ReadResponseBo dy </td>
1632 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1633 <td style="font-size: 11px; padding: 5px;">embind </td>
1634 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest.response </td>
1635 <td style="font-size: 11px; padding: 5px;"> </td>
1636 </tr>
1637
1638 <tr bgcolor="#fcfcfc">
1639 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
1640 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1641 <td style="font-size: 11px; padding: 5px;">embind </td>
1642 <td style="font-size: 11px; padding: 5px;">Body.* (Response is a Body) </td>
1643 <td style="font-size: 11px; padding: 5px;"> </td>
1644 </tr>
1645
1646 <tr bgcolor="#fcfcfc">
1647 <td style="font-weight: bold; font-size: 11px; padding: 5px;">FinishStreamin gToFile </td>
1648 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1649 <td style="font-size: 11px; padding: 5px;">embind </td>
1650 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
1651 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest and Fetch both ass ume streaming to memory, rather than directly to a storage. </td>
1652 </tr>
1653
1654 <tr bgcolor="#fcfcfc">
1655 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Close </td>
1656 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1657 <td style="font-size: 11px; padding: 5px;">embind </td>
1658 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest.abort </td>
1659 <td style="font-size: 11px; padding: 5px;"> </td>
1660 </tr>
1661
1662 <tr bgcolor="#fcfcfc">
1663 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
1664 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1665 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1666 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No Fetch API equivalent</td>
1667 <td style="font-size: 11px; padding: 5px;"> </td>
1668 </tr>
1669
1670 </table>
1671 <h3>PPB_URLRequestInfo</h3>
1672 <table>
1673 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
1674 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
1675 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
1676 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
1677 <td style="font-size: 11px; padding: 5px;">Web API </td>
1678 <td style="font-size: 11px; padding: 5px;">Limitations </td>
1679 </tr>
1680
1681 <tr bgcolor="#fcfcfc">
1682 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
1683 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1684 <td style="font-size: 11px; padding: 5px;">embind </td>
1685 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest </td>
1686 <td style="font-size: 11px; padding: 5px;"> </td>
1687 </tr>
1688
1689 <tr bgcolor="#fcfcfc">
1690 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
1691 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1692 <td style="font-size: 11px; padding: 5px;">embind </td>
1693 <td style="font-size: 11px; padding: 5px;">Fetch Request </td>
1694 <td style="font-size: 11px; padding: 5px;">No way to stream to a file. </td>
1695 </tr>
1696
1697 <tr bgcolor="#fcfcfc">
1698 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetProperty </ td>
1699 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1700 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1701 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent for XMLHttpRequest</td>
1702 <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>
1703 </tr>
1704
1705 <tr bgcolor="#fcfcfc">
1706 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
1707 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1708 <td style="font-size: 11px; padding: 5px;">embind </td>
1709 <td style="font-size: 11px; padding: 5px;">Request.* </td>
1710 <td style="font-size: 11px; padding: 5px;"> </td>
1711 </tr>
1712
1713 <tr bgcolor="#fcfcfc">
1714 <td style="font-weight: bold; font-size: 11px; padding: 5px;">AppendDataToBo dy </td>
1715 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1716 <td style="font-size: 11px; padding: 5px;">embind </td>
1717 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest.send </td>
1718 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - Both must have the whole body, rather than a chunk.</td>
1719 </tr>
1720
1721 <tr bgcolor="#fcfcfc">
1722 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
1723 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1724 <td style="font-size: 11px; padding: 5px;">embind </td>
1725 <td style="font-size: 11px; padding: 5px;">fetch(.., options:body) </td>
1726 <td style="font-size: 11px; padding: 5px;"> </td>
1727 </tr>
1728
1729 <tr bgcolor="#fcfcfc">
1730 <td style="font-weight: bold; font-size: 11px; padding: 5px;">AppendFileToBo dy </td>
1731 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1732 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1733 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
1734 <td style="font-size: 11px; padding: 5px;"> </td>
1735 </tr>
1736
1737 <tr bgcolor="#fcfcfc">
1738 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
1739 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1740 <td style="font-size: 11px; padding: 5px;">N/A </td>
1741 <td style="font-size: 11px; padding: 5px;">&lt;form&gt; </td>
1742 <td style="font-size: 11px; padding: 5px;">You can also read with FileReader and upload, but that's more like AppendDataToBody </td>
1743 </tr>
1744
1745 </table>
1746 <h3>PPB_URLResponseInfo</h3>
1747 <table>
1748 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
1749 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
1750 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
1751 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
1752 <td style="font-size: 11px; padding: 5px;">Web API </td>
1753 <td style="font-size: 11px; padding: 5px;">Limitations </td>
1754 </tr>
1755
1756 <tr bgcolor="#fcfcfc">
1757 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetProperty </ td>
1758 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1759 <td style="font-size: 11px; padding: 5px;">embind </td>
1760 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest.getAllResponseHead ers + others </td>
1761 <td style="font-size: 11px; padding: 5px;"> </td>
1762 </tr>
1763
1764 <tr bgcolor="#fcfcfc">
1765 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
1766 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1767 <td style="font-size: 11px; padding: 5px;">embind </td>
1768 <td style="font-size: 11px; padding: 5px;">Fetch Response.* </td>
1769 <td style="font-size: 11px; padding: 5px;"> </td>
1770 </tr>
1771
1772 <tr bgcolor="#fcfcfc">
1773 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetBodyAsFileR ef </td>
1774 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1775 <td style="font-size: 11px; padding: 5px;">embind </td>
1776 <td style="font-size: 11px; padding: 5px;">Fetch Response (Body) .blob() </t d>
1777 <td style="font-size: 11px; padding: 5px;">Assumes storage layer optimizes t ransfer. </td>
1778 </tr>
1779
1780 </table>
1781 <h3>PPB_Var</h3>
1782 <table>
1783 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
1784 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
1785 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
1786 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
1787 <td style="font-size: 11px; padding: 5px;">Web API </td>
1788 <td style="font-size: 11px; padding: 5px;">Limitations </td>
1789 </tr>
1790
1791 <tr bgcolor="#fcfcfc">
1792 <td style="font-weight: bold; font-size: 11px; padding: 5px;">VarFromUtf8 </ td>
1793 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1794 <td style="font-size: 11px; padding: 5px;">embind </td>
1795 <td style="font-size: 11px; padding: 5px;">TextDecoder.decode </td>
1796 <td style="font-size: 11px; padding: 5px;"> </td>
1797 </tr>
1798
1799 <tr bgcolor="#fcfcfc">
1800 <td style="font-weight: bold; font-size: 11px; padding: 5px;">VarToUtf8 </td >
1801 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1802 <td style="font-size: 11px; padding: 5px;">embind </td>
1803 <td style="font-size: 11px; padding: 5px;">TextEncoder.encode </td>
1804 <td style="font-size: 11px; padding: 5px;"> </td>
1805 </tr>
1806
1807 <tr bgcolor="#fcfcfc">
1808 <td style="font-weight: bold; font-size: 11px; padding: 5px;">VarFromResourc e </td>
1809 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1810 <td style="font-size: 11px; padding: 5px;">N/A </td>
1811 <td style="font-size: 11px; padding: 5px;">N/A </td>
1812 <td style="font-size: 11px; padding: 5px;"> </td>
1813 </tr>
1814
1815 <tr bgcolor="#fcfcfc">
1816 <td style="font-weight: bold; font-size: 11px; padding: 5px;">VarToResource </td>
1817 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1818 <td style="font-size: 11px; padding: 5px;">N/A </td>
1819 <td style="font-size: 11px; padding: 5px;">N/A </td>
1820 <td style="font-size: 11px; padding: 5px;"> </td>
1821 </tr>
1822
1823 </table>
1824 <h3>PPB_VarArray</h3>
1825 <table>
1826 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
1827 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
1828 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
1829 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
1830 <td style="font-size: 11px; padding: 5px;">Web API </td>
1831 <td style="font-size: 11px; padding: 5px;">Limitations </td>
1832 </tr>
1833
1834 <tr bgcolor="#fcfcfc">
1835 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Get </td>
1836 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1837 <td style="font-size: 11px; padding: 5px;">embind </td>
1838 <td style="font-size: 11px; padding: 5px;">Array[i] </td>
1839 <td style="font-size: 11px; padding: 5px;"> </td>
1840 </tr>
1841
1842 <tr bgcolor="#fcfcfc">
1843 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Set </td>
1844 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1845 <td style="font-size: 11px; padding: 5px;">embind </td>
1846 <td style="font-size: 11px; padding: 5px;">Array[i] = x </td>
1847 <td style="font-size: 11px; padding: 5px;"> </td>
1848 </tr>
1849
1850 <tr bgcolor="#fcfcfc">
1851 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetLength </td >
1852 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1853 <td style="font-size: 11px; padding: 5px;">embind </td>
1854 <td style="font-size: 11px; padding: 5px;">Array.length </td>
1855 <td style="font-size: 11px; padding: 5px;"> </td>
1856 </tr>
1857
1858 <tr bgcolor="#fcfcfc">
1859 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetLength </td >
1860 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1861 <td style="font-size: 11px; padding: 5px;">embind </td>
1862 <td style="font-size: 11px; padding: 5px;">Array.length = n </td>
1863 <td style="font-size: 11px; padding: 5px;"> </td>
1864 </tr>
1865
1866 </table>
1867 <h3>PPB_VarArrayBuffer</h3>
1868 <table>
1869 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
1870 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
1871 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
1872 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
1873 <td style="font-size: 11px; padding: 5px;">Web API </td>
1874 <td style="font-size: 11px; padding: 5px;">Limitations </td>
1875 </tr>
1876
1877 <tr bgcolor="#fcfcfc">
1878 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
1879 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1880 <td style="font-size: 11px; padding: 5px;">embind </td>
1881 <td style="font-size: 11px; padding: 5px;">new ArrayBuffer(n) </td>
1882 <td style="font-size: 11px; padding: 5px;"> </td>
1883 </tr>
1884
1885 <tr bgcolor="#fcfcfc">
1886 <td style="font-weight: bold; font-size: 11px; padding: 5px;">ByteLength </t d>
1887 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1888 <td style="font-size: 11px; padding: 5px;">embind </td>
1889 <td style="font-size: 11px; padding: 5px;">ArrayBuffer.byteLength </td>
1890 <td style="font-size: 11px; padding: 5px;"> </td>
1891 </tr>
1892
1893 <tr bgcolor="#fcfcfc">
1894 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Map </td>
1895 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1896 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1897 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
1898 <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.
1899 Future multiple memories or memory mapping might improve this. </td>
1900 </tr>
1901
1902 <tr bgcolor="#fcfcfc">
1903 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Unmap </td>
1904 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1905 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1906 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
1907 <td style="font-size: 11px; padding: 5px;"> </td>
1908 </tr>
1909
1910 </table>
1911 <h3>PPB_VarDictionary</h3>
1912 <table>
1913 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
1914 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
1915 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
1916 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
1917 <td style="font-size: 11px; padding: 5px;">Web API </td>
1918 <td style="font-size: 11px; padding: 5px;">Limitations </td>
1919 </tr>
1920
1921 <tr bgcolor="#fcfcfc">
1922 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
1923 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1924 <td style="font-size: 11px; padding: 5px;">embind </td>
1925 <td style="font-size: 11px; padding: 5px;">{} </td>
1926 <td style="font-size: 11px; padding: 5px;"> </td>
1927 </tr>
1928
1929 <tr bgcolor="#fcfcfc">
1930 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Get </td>
1931 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1932 <td style="font-size: 11px; padding: 5px;">embind </td>
1933 <td style="font-size: 11px; padding: 5px;">&lt;Object&gt;[i] </td>
1934 <td style="font-size: 11px; padding: 5px;"> </td>
1935 </tr>
1936
1937 <tr bgcolor="#fcfcfc">
1938 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Set </td>
1939 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1940 <td style="font-size: 11px; padding: 5px;">embind </td>
1941 <td style="font-size: 11px; padding: 5px;">&lt;Object&gt;[i] = x </td>
1942 <td style="font-size: 11px; padding: 5px;"> </td>
1943 </tr>
1944
1945 <tr bgcolor="#fcfcfc">
1946 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Delete </td>
1947 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1948 <td style="font-size: 11px; padding: 5px;">embind </td>
1949 <td style="font-size: 11px; padding: 5px;">delete &lt;Object&gt;[i] </td>
1950 <td style="font-size: 11px; padding: 5px;"> </td>
1951 </tr>
1952
1953 <tr bgcolor="#fcfcfc">
1954 <td style="font-weight: bold; font-size: 11px; padding: 5px;">HasKey </td>
1955 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1956 <td style="font-size: 11px; padding: 5px;">embind </td>
1957 <td style="font-size: 11px; padding: 5px;">x in &lt;Object&gt; </td>
1958 <td style="font-size: 11px; padding: 5px;"> </td>
1959 </tr>
1960
1961 <tr bgcolor="#fcfcfc">
1962 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetKeys </td>
1963 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1964 <td style="font-size: 11px; padding: 5px;">embind </td>
1965 <td style="font-size: 11px; padding: 5px;">for (k in &lt;Object&gt;) {} </td >
1966 <td style="font-size: 11px; padding: 5px;">No literal equivalent, but it can be built. </td>
1967 </tr>
1968
1969 </table>
1970 <h3>PPB_VideoDecoder</h3>
1971 <table>
1972 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
1973 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
1974 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
1975 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
1976 <td style="font-size: 11px; padding: 5px;">Web API </td>
1977 <td style="font-size: 11px; padding: 5px;">Limitations </td>
1978 </tr>
1979
1980 <tr bgcolor="#fcfcfc">
1981 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
1982 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1983 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1984 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
1985 <td style="font-size: 11px; padding: 5px;"> </td>
1986 </tr>
1987
1988 <tr bgcolor="#fcfcfc">
1989 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Initialize </t d>
1990 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1991 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
1992 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
1993 <td style="font-size: 11px; padding: 5px;"> </td>
1994 </tr>
1995
1996 <tr bgcolor="#fcfcfc">
1997 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Decode </td>
1998 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
1999 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2000 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2001 <td style="font-size: 11px; padding: 5px;"> </td>
2002 </tr>
2003
2004 <tr bgcolor="#fcfcfc">
2005 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetPicture </t d>
2006 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2007 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2008 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2009 <td style="font-size: 11px; padding: 5px;"> </td>
2010 </tr>
2011
2012 <tr bgcolor="#fcfcfc">
2013 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RecyclePicture </td>
2014 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2015 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2016 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2017 <td style="font-size: 11px; padding: 5px;"> </td>
2018 </tr>
2019
2020 <tr bgcolor="#fcfcfc">
2021 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Flush </td>
2022 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2023 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2024 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2025 <td style="font-size: 11px; padding: 5px;"> </td>
2026 </tr>
2027
2028 <tr bgcolor="#fcfcfc">
2029 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Reset </td>
2030 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2031 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2032 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2033 <td style="font-size: 11px; padding: 5px;"> </td>
2034 </tr>
2035
2036 </table>
2037 <h3>PPB_VideoEncoder</h3>
2038 <table>
2039 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
2040 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
2041 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
2042 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
2043 <td style="font-size: 11px; padding: 5px;">Web API </td>
2044 <td style="font-size: 11px; padding: 5px;">Limitations </td>
2045 </tr>
2046
2047 <tr bgcolor="#fcfcfc">
2048 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
2049 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2050 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2051 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2052 <td style="font-size: 11px; padding: 5px;">Overlap with MediaRecorder API, b ut not exact. </td>
2053 </tr>
2054
2055 <tr bgcolor="#fcfcfc">
2056 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetSupportedPr ofiles </td>
2057 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2058 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2059 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2060 <td style="font-size: 11px; padding: 5px;"> </td>
2061 </tr>
2062
2063 <tr bgcolor="#fcfcfc">
2064 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Initialize </t d>
2065 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2066 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2067 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2068 <td style="font-size: 11px; padding: 5px;"> </td>
2069 </tr>
2070
2071 <tr bgcolor="#fcfcfc">
2072 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetFramesRequi red </td>
2073 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2074 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2075 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2076 <td style="font-size: 11px; padding: 5px;"> </td>
2077 </tr>
2078
2079 <tr bgcolor="#fcfcfc">
2080 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetFrameCodedS ize </td>
2081 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2082 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2083 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2084 <td style="font-size: 11px; padding: 5px;"> </td>
2085 </tr>
2086
2087 <tr bgcolor="#fcfcfc">
2088 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetVideoFrame </td>
2089 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2090 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2091 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2092 <td style="font-size: 11px; padding: 5px;"> </td>
2093 </tr>
2094
2095 <tr bgcolor="#fcfcfc">
2096 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Encode </td>
2097 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2098 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2099 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2100 <td style="font-size: 11px; padding: 5px;"> </td>
2101 </tr>
2102
2103 <tr bgcolor="#fcfcfc">
2104 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetBitstreamBu ffer </td>
2105 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2106 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2107 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2108 <td style="font-size: 11px; padding: 5px;"> </td>
2109 </tr>
2110
2111 <tr bgcolor="#fcfcfc">
2112 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RecycleBitstre amBuffer </td>
2113 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2114 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2115 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2116 <td style="font-size: 11px; padding: 5px;"> </td>
2117 </tr>
2118
2119 <tr bgcolor="#fcfcfc">
2120 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RequestEncodin gParametersChange </td>
2121 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2122 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2123 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2124 <td style="font-size: 11px; padding: 5px;"> </td>
2125 </tr>
2126
2127 <tr bgcolor="#fcfcfc">
2128 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Close </td>
2129 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2130 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2131 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2132 <td style="font-size: 11px; padding: 5px;"> </td>
2133 </tr>
2134
2135 </table>
2136 <h3>PPB_VideoFrame</h3>
2137 <table>
2138 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
2139 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
2140 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
2141 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
2142 <td style="font-size: 11px; padding: 5px;">Web API </td>
2143 <td style="font-size: 11px; padding: 5px;">Limitations </td>
2144 </tr>
2145
2146 <tr bgcolor="#fcfcfc">
2147 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetTimestamp < /td>
2148 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2149 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2150 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2151 <td style="font-size: 11px; padding: 5px;"> </td>
2152 </tr>
2153
2154 <tr bgcolor="#fcfcfc">
2155 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetTimestamp < /td>
2156 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2157 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2158 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2159 <td style="font-size: 11px; padding: 5px;"> </td>
2160 </tr>
2161
2162 <tr bgcolor="#fcfcfc">
2163 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetFormat </td >
2164 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2165 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2166 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2167 <td style="font-size: 11px; padding: 5px;"> </td>
2168 </tr>
2169
2170 <tr bgcolor="#fcfcfc">
2171 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetSize </td>
2172 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2173 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2174 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2175 <td style="font-size: 11px; padding: 5px;"> </td>
2176 </tr>
2177
2178 <tr bgcolor="#fcfcfc">
2179 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetDataBuffer </td>
2180 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2181 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2182 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2183 <td style="font-size: 11px; padding: 5px;"> </td>
2184 </tr>
2185
2186 <tr bgcolor="#fcfcfc">
2187 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetDataBufferS ize </td>
2188 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2189 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2190 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
2191 <td style="font-size: 11px; padding: 5px;"> </td>
2192 </tr>
2193
2194 </table>
2195 <h3>PPB_View</h3>
2196 <table>
2197 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
2198 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
2199 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
2200 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
2201 <td style="font-size: 11px; padding: 5px;">Web API </td>
2202 <td style="font-size: 11px; padding: 5px;">Limitations </td>
2203 </tr>
2204
2205 <tr bgcolor="#fcfcfc">
2206 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetRect </td>
2207 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2208 <td style="font-size: 11px; padding: 5px;">embind </td>
2209 <td style="font-size: 11px; padding: 5px;">Element.getBoundingClientRect </t d>
2210 <td style="font-size: 11px; padding: 5px;"> </td>
2211 </tr>
2212
2213 <tr bgcolor="#fcfcfc">
2214 <td style="font-weight: bold; font-size: 11px; padding: 5px;">IsFullscreen < /td>
2215 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2216 <td style="font-size: 11px; padding: 5px;">embind </td>
2217 <td style="font-size: 11px; padding: 5px;">Document.fullScreenEnabled </td>
2218 <td style="font-size: 11px; padding: 5px;">Pertains to document instead of j ust single element. </td>
2219 </tr>
2220
2221 <tr bgcolor="#fcfcfc">
2222 <td style="font-weight: bold; font-size: 11px; padding: 5px;">IsVisible </td >
2223 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2224 <td style="font-size: 11px; padding: 5px;">embind </td>
2225 <td style="font-size: 11px; padding: 5px;">IntersectionObserver </td>
2226 <td style="font-size: 11px; padding: 5px;"> </td>
2227 </tr>
2228
2229 <tr bgcolor="#fcfcfc">
2230 <td style="font-weight: bold; font-size: 11px; padding: 5px;">IsPageVisible </td>
2231 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2232 <td style="font-size: 11px; padding: 5px;">embind </td>
2233 <td style="font-size: 11px; padding: 5px;">document.visibilityState </td>
2234 <td style="font-size: 11px; padding: 5px;"> </td>
2235 </tr>
2236
2237 <tr bgcolor="#fcfcfc">
2238 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetClipRect </ td>
2239 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2240 <td style="font-size: 11px; padding: 5px;">embind </td>
2241 <td style="font-size: 11px; padding: 5px;">IntersectionObserver </td>
2242 <td style="font-size: 11px; padding: 5px;"> </td>
2243 </tr>
2244
2245 <tr bgcolor="#fcfcfc">
2246 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetDeviceScale </td>
2247 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2248 <td style="font-size: 11px; padding: 5px;">embind </td>
2249 <td style="font-size: 11px; padding: 5px;">window.devicePixelRatio </td>
2250 <td style="font-size: 11px; padding: 5px;"> </td>
2251 </tr>
2252
2253 <tr bgcolor="#fcfcfc">
2254 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetCSSScale </ td>
2255 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2256 <td style="font-size: 11px; padding: 5px;">embind </td>
2257 <td style="font-size: 11px; padding: 5px;">&lt;Element&gt;.getBoundingClient Rect().width / &lt;Element&gt;.offsetWidth </td>
2258 <td style="font-size: 11px; padding: 5px;"> </td>
2259 </tr>
2260
2261 <tr bgcolor="#fcfcfc">
2262 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetScrollOffse t </td>
2263 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2264 <td style="font-size: 11px; padding: 5px;">embind </td>
2265 <td style="font-size: 11px; padding: 5px;">&lt;Element&gt;.scrollTop / &lt;E lement&gt;.scrollLeft </td>
2266 <td style="font-size: 11px; padding: 5px;"> </td>
2267 </tr>
2268
2269 </table>
2270 <h3>PPB_WebSocket</h3>
2271 <table>
2272 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
2273 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
2274 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
2275 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
2276 <td style="font-size: 11px; padding: 5px;">Web API </td>
2277 <td style="font-size: 11px; padding: 5px;">Limitations </td>
2278 </tr>
2279
2280 <tr bgcolor="#fcfcfc">
2281 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
2282 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2283 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2284 <td style="font-size: 11px; padding: 5px;">WebSocket.WebSocket </td>
2285 <td style="font-size: 11px; padding: 5px;"> </td>
2286 </tr>
2287
2288 <tr bgcolor="#fcfcfc">
2289 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Connect </td>
2290 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2291 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2292 <td style="font-size: 11px; padding: 5px;">WebSocket.WebSocket(url, ...)
2293 WebSocket 'open' Event </td>
2294 <td style="font-size: 11px; padding: 5px;"> </td>
2295 </tr>
2296
2297 <tr bgcolor="#fcfcfc">
2298 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Close </td>
2299 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2300 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2301 <td style="font-size: 11px; padding: 5px;">WebSocket.close </td>
2302 <td style="font-size: 11px; padding: 5px;"> </td>
2303 </tr>
2304
2305 <tr bgcolor="#fcfcfc">
2306 <td style="font-weight: bold; font-size: 11px; padding: 5px;">ReceiveMessage </td>
2307 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2308 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2309 <td style="font-size: 11px; padding: 5px;">WebSocket 'message' Event
2310 WebSocket 'error' Event
2311 WebSocket 'close' Event </td>
2312 <td style="font-size: 11px; padding: 5px;"> </td>
2313 </tr>
2314
2315 <tr bgcolor="#fcfcfc">
2316 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SendMessage </ td>
2317 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2318 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2319 <td style="font-size: 11px; padding: 5px;">WebSocket.send </td>
2320 <td style="font-size: 11px; padding: 5px;"> </td>
2321 </tr>
2322
2323 <tr bgcolor="#fcfcfc">
2324 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetBufferedAmo unt </td>
2325 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2326 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2327 <td style="font-size: 11px; padding: 5px;">WebSocket.bufferedAmount </td>
2328 <td style="font-size: 11px; padding: 5px;"> </td>
2329 </tr>
2330
2331 <tr bgcolor="#fcfcfc">
2332 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetCloseCode < /td>
2333 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2334 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2335 <td style="font-size: 11px; padding: 5px;">CloseEvent.code </td>
2336 <td style="font-size: 11px; padding: 5px;"> </td>
2337 </tr>
2338
2339 <tr bgcolor="#fcfcfc">
2340 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetCloseReason </td>
2341 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2342 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2343 <td style="font-size: 11px; padding: 5px;">CloseEvent.reason </td>
2344 <td style="font-size: 11px; padding: 5px;"> </td>
2345 </tr>
2346
2347 <tr bgcolor="#fcfcfc">
2348 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetCloseWasCle an </td>
2349 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2350 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2351 <td style="font-size: 11px; padding: 5px;">CloseEvent.wasClean </td>
2352 <td style="font-size: 11px; padding: 5px;"> </td>
2353 </tr>
2354
2355 <tr bgcolor="#fcfcfc">
2356 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetExtensions </td>
2357 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2358 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2359 <td style="font-size: 11px; padding: 5px;">WebSocket.extensions </td>
2360 <td style="font-size: 11px; padding: 5px;"> </td>
2361 </tr>
2362
2363 <tr bgcolor="#fcfcfc">
2364 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetProtocol </ td>
2365 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2366 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2367 <td style="font-size: 11px; padding: 5px;">WebSocket.protocol </td>
2368 <td style="font-size: 11px; padding: 5px;"> </td>
2369 </tr>
2370
2371 <tr bgcolor="#fcfcfc">
2372 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetReadyState </td>
2373 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2374 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2375 <td style="font-size: 11px; padding: 5px;">WebSocket.readyState </td>
2376 <td style="font-size: 11px; padding: 5px;"> </td>
2377 </tr>
2378
2379 <tr bgcolor="#fcfcfc">
2380 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetURL </td>
2381 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2382 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2383 <td style="font-size: 11px; padding: 5px;">WebSocket.url </td>
2384 <td style="font-size: 11px; padding: 5px;"> </td>
2385 </tr>
2386
2387 </table>
2388 <h3>PPP_Graphics3D</h3>
2389 <table>
2390 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
2391 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
2392 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
2393 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
2394 <td style="font-size: 11px; padding: 5px;">Web API </td>
2395 <td style="font-size: 11px; padding: 5px;">Limitations </td>
2396 </tr>
2397
2398 <tr bgcolor="#fcfcfc">
2399 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Graphics3DCont extLost </td>
2400 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2401 <td style="font-size: 11px; padding: 5px;">SDL </td>
2402 <td style="font-size: 11px; padding: 5px;">Canvas 'webglcontextlost' Event < /td>
2403 <td style="font-size: 11px; padding: 5px;"> </td>
2404 </tr>
2405
2406 </table>
2407 <h3>PPP_InputEvent</h3>
2408 <table>
2409 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
2410 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
2411 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
2412 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
2413 <td style="font-size: 11px; padding: 5px;">Web API </td>
2414 <td style="font-size: 11px; padding: 5px;">Limitations </td>
2415 </tr>
2416
2417 <tr bgcolor="#fcfcfc">
2418 <td style="font-weight: bold; font-size: 11px; padding: 5px;">HandleInputEve nt </td>
2419 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2420 <td style="font-size: 11px; padding: 5px;">SDL </td>
2421 <td style="font-size: 11px; padding: 5px;">Element.addEventListener </td>
2422 <td style="font-size: 11px; padding: 5px;"> </td>
2423 </tr>
2424
2425 </table>
2426 <h3>PPP_Instance</h3>
2427 <table>
2428 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
2429 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
2430 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
2431 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
2432 <td style="font-size: 11px; padding: 5px;">Web API </td>
2433 <td style="font-size: 11px; padding: 5px;">Limitations </td>
2434 </tr>
2435
2436 <tr bgcolor="#fcfcfc">
2437 <td style="font-weight: bold; font-size: 11px; padding: 5px;">DidCreate </td >
2438 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2439 <td style="font-size: 11px; padding: 5px;">N/A </td>
2440 <td style="font-size: 11px; padding: 5px;">&lt;Element&gt;[key] </td>
2441 <td style="font-size: 11px; padding: 5px;">General DOM access lets you fish out tag attributes </td>
2442 </tr>
2443
2444 <tr bgcolor="#fcfcfc">
2445 <td style="font-weight: bold; font-size: 11px; padding: 5px;">DidDestroy </t d>
2446 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2447 <td style="font-size: 11px; padding: 5px;">N/A </td>
2448 <td style="font-size: 11px; padding: 5px;">N/A </td>
2449 <td style="font-size: 11px; padding: 5px;">Not triggered for NaCl </td>
2450 </tr>
2451
2452 <tr bgcolor="#fcfcfc">
2453 <td style="font-weight: bold; font-size: 11px; padding: 5px;">DidChangeView </td>
2454 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2455 <td style="font-size: 11px; padding: 5px;">N/A </td>
2456 <td style="font-size: 11px; padding: 5px;">Element 'resize' Event </td>
2457 <td style="font-size: 11px; padding: 5px;"> </td>
2458 </tr>
2459
2460 <tr bgcolor="#fcfcfc">
2461 <td style="font-weight: bold; font-size: 11px; padding: 5px;">DidChangeFocus </td>
2462 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2463 <td style="font-size: 11px; padding: 5px;">N/A </td>
2464 <td style="font-size: 11px; padding: 5px;">Element 'focus', 'focusin', 'focu sout' Events </td>
2465 <td style="font-size: 11px; padding: 5px;"> </td>
2466 </tr>
2467
2468 <tr bgcolor="#fcfcfc">
2469 <td style="font-weight: bold; font-size: 11px; padding: 5px;">HandleDocument Load </td>
2470 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2471 <td style="font-size: 11px; padding: 5px;">N/A </td>
2472 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No way to register as a mime type handler</td>
2473 <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>
2474 </tr>
2475
2476 </table>
2477 <h3>PPP_MessageHandler</h3>
2478 <table>
2479 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
2480 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
2481 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
2482 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
2483 <td style="font-size: 11px; padding: 5px;">Web API </td>
2484 <td style="font-size: 11px; padding: 5px;">Limitations </td>
2485 </tr>
2486
2487 <tr bgcolor="#fcfcfc">
2488 <td style="font-weight: bold; font-size: 11px; padding: 5px;">HandleMessage </td>
2489 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2490 <td style="font-size: 11px; padding: 5px;">embind </td>
2491 <td style="font-size: 11px; padding: 5px;">MessagePort 'message' Event
2492 Window 'message' Event </td>
2493 <td style="font-size: 11px; padding: 5px;"> </td>
2494 </tr>
2495
2496 <tr bgcolor="#fcfcfc">
2497 <td style="font-weight: bold; font-size: 11px; padding: 5px;">HandleBlocking Message </td>
2498 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2499 <td style="font-size: 11px; padding: 5px;">N/A </td>
2500 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
2501 <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>
2502 </tr>
2503
2504 </table>
2505 <h3>PPP_Messaging</h3>
2506 <table>
2507 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
2508 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
2509 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
2510 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
2511 <td style="font-size: 11px; padding: 5px;">Web API </td>
2512 <td style="font-size: 11px; padding: 5px;">Limitations </td>
2513 </tr>
2514
2515 <tr bgcolor="#fcfcfc">
2516 <td style="font-weight: bold; font-size: 11px; padding: 5px;">HandleMessage </td>
2517 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2518 <td style="font-size: 11px; padding: 5px;">embind </td>
2519 <td style="font-size: 11px; padding: 5px;">MessagePort 'message' Event
2520 Window 'message' Event </td>
2521 <td style="font-size: 11px; padding: 5px;"> </td>
2522 </tr>
2523
2524 </table>
2525 <h3>PPP_MouseLock</h3>
2526 <table>
2527 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
2528 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
2529 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
2530 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
2531 <td style="font-size: 11px; padding: 5px;">Web API </td>
2532 <td style="font-size: 11px; padding: 5px;">Limitations </td>
2533 </tr>
2534
2535 <tr bgcolor="#fcfcfc">
2536 <td style="font-weight: bold; font-size: 11px; padding: 5px;">MouseLockLost </td>
2537 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2538 <td style="font-size: 11px; padding: 5px;">SDL </td>
2539 <td style="font-size: 11px; padding: 5px;">Element 'pointerlockchange', 'poi nterlockerror' Events </td>
2540 <td style="font-size: 11px; padding: 5px;"> </td>
2541 </tr>
2542
2543 </table>
2544 <h2 id="irt">IRT</h2>
2545 <table>
2546 </table>
2547 <h3>PPB_Audio</h3>
2548 <table>
2549 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
2550 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
2551 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
2552 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
2553 <td style="font-size: 11px; padding: 5px;">Web API </td>
2554 <td style="font-size: 11px; padding: 5px;">Limitations </td>
2555 </tr>
2556
2557 <tr bgcolor="#fcfcfc">
2558 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
2559 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
2560 <td style="font-size: 11px; padding: 5px;">SDL (partial) </td>
2561 <td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - AudioWorkletNode ROUGHLY equivalent</td>
2562 <td style="font-size: 11px; padding: 5px;">Still being standardized. </td>
2563 </tr>
2564
2565 <tr bgcolor="#fcfcfc">
2566 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetCurrentConf ig </td>
2567 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2568 <td style="font-size: 11px; padding: 5px;">SDL </td>
2569 <td style="font-size: 11px; padding: 5px;">AudioContext.* (gets back setting s passed in) </td>
2570 <td style="font-size: 11px; padding: 5px;"> </td>
2571 </tr>
2572
2573 <tr bgcolor="#fcfcfc">
2574 <td style="font-weight: bold; font-size: 11px; padding: 5px;">StartPlayback </td>
2575 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2576 <td style="font-size: 11px; padding: 5px;">SDL </td>
2577 <td style="font-size: 11px; padding: 5px;">AudioBufferSourceNode.start </td>
2578 <td style="font-size: 11px; padding: 5px;"> </td>
2579 </tr>
2580
2581 <tr bgcolor="#fcfcfc">
2582 <td style="font-weight: bold; font-size: 11px; padding: 5px;">StopPlayback < /td>
2583 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2584 <td style="font-size: 11px; padding: 5px;">SDL </td>
2585 <td style="font-size: 11px; padding: 5px;">AudioBufferSourceNode.stop </td>
2586 <td style="font-size: 11px; padding: 5px;"> </td>
2587 </tr>
2588
2589 </table>
2590 <h3>PPB_AudioBuffer</h3>
2591 <table>
2592 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
2593 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
2594 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
2595 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
2596 <td style="font-size: 11px; padding: 5px;">Web API </td>
2597 <td style="font-size: 11px; padding: 5px;">Limitations </td>
2598 </tr>
2599
2600 <tr bgcolor="#fcfcfc">
2601 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetTimestamp < /td>
2602 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2603 <td style="font-size: 11px; padding: 5px;">SDL </td>
2604 <td style="font-size: 11px; padding: 5px;">AudioBufferSourceNode.start (para meter) </td>
2605 <td style="font-size: 11px; padding: 5px;">Passed in each time instead of at tached to the buffer. </td>
2606 </tr>
2607
2608 <tr bgcolor="#fcfcfc">
2609 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetTimestamp < /td>
2610 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2611 <td style="font-size: 11px; padding: 5px;">SDL </td>
2612 <td style="font-size: 11px; padding: 5px;">AudioBufferSourceNode.start (para meter) </td>
2613 <td style="font-size: 11px; padding: 5px;"> </td>
2614 </tr>
2615
2616 <tr bgcolor="#fcfcfc">
2617 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetSampleRate </td>
2618 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2619 <td style="font-size: 11px; padding: 5px;">SDL </td>
2620 <td style="font-size: 11px; padding: 5px;">AudioBuffer.sampleRate </td>
2621 <td style="font-size: 11px; padding: 5px;"> </td>
2622 </tr>
2623
2624 <tr bgcolor="#fcfcfc">
2625 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetSampleSize </td>
2626 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2627 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2628 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - WebAudio only uses 32-bit float, PPAPI does 16-bit int.</td>
2629 <td style="font-size: 11px; padding: 5px;">PPAPI theoretically supports mult iple sampling sizes. In practice, it only supports 16-bit samples. Unfortunately , developers have requested 16-bit sample sizes to save on memory use. </td>
2630 </tr>
2631
2632 <tr bgcolor="#fcfcfc">
2633 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetNumberOfCha nnels </td>
2634 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2635 <td style="font-size: 11px; padding: 5px;">SDL </td>
2636 <td style="font-size: 11px; padding: 5px;">AudioBuffer.numberOfChannels </td >
2637 <td style="font-size: 11px; padding: 5px;"> </td>
2638 </tr>
2639
2640 <tr bgcolor="#fcfcfc">
2641 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetDataBuffer </td>
2642 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2643 <td style="font-size: 11px; padding: 5px;">SDL </td>
2644 <td style="font-size: 11px; padding: 5px;">AudioBuffer.getChannelData </td>
2645 <td style="font-size: 11px; padding: 5px;"> </td>
2646 </tr>
2647
2648 <tr bgcolor="#fcfcfc">
2649 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetBufferSize </td>
2650 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2651 <td style="font-size: 11px; padding: 5px;">SDL </td>
2652 <td style="font-size: 11px; padding: 5px;">AudioBuffer.length </td>
2653 <td style="font-size: 11px; padding: 5px;"> </td>
2654 </tr>
2655
2656 </table>
2657 <h3>PPB_AudioConfig</h3>
2658 <table>
2659 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
2660 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
2661 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
2662 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
2663 <td style="font-size: 11px; padding: 5px;">Web API </td>
2664 <td style="font-size: 11px; padding: 5px;">Limitations </td>
2665 </tr>
2666
2667 <tr bgcolor="#fcfcfc">
2668 <td style="font-weight: bold; font-size: 11px; padding: 5px;">CreateStereo16 Bit </td>
2669 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2670 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2671 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - Only 32-b it float samples supported</td>
2672 <td style="font-size: 11px; padding: 5px;"> </td>
2673 </tr>
2674
2675 <tr bgcolor="#fcfcfc">
2676 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetSampleRate </td>
2677 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2678 <td style="font-size: 11px; padding: 5px;">SDL </td>
2679 <td style="font-size: 11px; padding: 5px;">AudioContext.sampleRate </td>
2680 <td style="font-size: 11px; padding: 5px;"> </td>
2681 </tr>
2682
2683 <tr bgcolor="#fcfcfc">
2684 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetSampleFrame Count </td>
2685 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2686 <td style="font-size: 11px; padding: 5px;">SDL </td>
2687 <td style="font-size: 11px; padding: 5px;">AudioBuffer.length </td>
2688 <td style="font-size: 11px; padding: 5px;"> </td>
2689 </tr>
2690
2691 <tr bgcolor="#fcfcfc">
2692 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RecommendSampl eRate </td>
2693 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2694 <td style="font-size: 11px; padding: 5px;">SDL </td>
2695 <td style="font-size: 11px; padding: 5px;">AudioContext.sampleRate (from def ault construct) </td>
2696 <td style="font-size: 11px; padding: 5px;">An AudioContext will have the pre ferred sampling rate by default. </td>
2697 </tr>
2698
2699 <tr bgcolor="#fcfcfc">
2700 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RecommendSampl eFrameCount </td>
2701 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2702 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2703 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No mechan ism to get a recomended buffer size.</td>
2704 <td style="font-size: 11px; padding: 5px;"> </td>
2705 </tr>
2706
2707 </table>
2708 <h3>PPB_Console</h3>
2709 <table>
2710 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
2711 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
2712 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
2713 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
2714 <td style="font-size: 11px; padding: 5px;">Web API </td>
2715 <td style="font-size: 11px; padding: 5px;">Limitations </td>
2716 </tr>
2717
2718 <tr bgcolor="#fcfcfc">
2719 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Log </td>
2720 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2721 <td style="font-size: 11px; padding: 5px;">utime </td>
2722 <td style="font-size: 11px; padding: 5px;">console.log/warn/error/... </td>
2723 <td style="font-size: 11px; padding: 5px;"> </td>
2724 </tr>
2725
2726 <tr bgcolor="#fcfcfc">
2727 <td style="font-weight: bold; font-size: 11px; padding: 5px;">LogWithSource </td>
2728 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2729 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2730 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2731 <td style="font-size: 11px; padding: 5px;">PPAPI provides a way to override the source filename and line number in a console message.
2732 (Though JS API provides way to style text). </td>
2733 </tr>
2734
2735 </table>
2736 <h3>PPB_Core</h3>
2737 <table>
2738 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
2739 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
2740 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
2741 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
2742 <td style="font-size: 11px; padding: 5px;">Web API </td>
2743 <td style="font-size: 11px; padding: 5px;">Limitations </td>
2744 </tr>
2745
2746 <tr bgcolor="#fcfcfc">
2747 <td style="font-weight: bold; font-size: 11px; padding: 5px;">getTime </td>
2748 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2749 <td style="font-size: 11px; padding: 5px;">utime </td>
2750 <td style="font-size: 11px; padding: 5px;">new Date().getTime() </td>
2751 <td style="font-size: 11px; padding: 5px;"> </td>
2752 </tr>
2753
2754 <tr bgcolor="#fcfcfc">
2755 <td style="font-weight: bold; font-size: 11px; padding: 5px;">getTimeTicks < /td>
2756 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2757 <td style="font-size: 11px; padding: 5px;">utime </td>
2758 <td style="font-size: 11px; padding: 5px;">new Date().getTime() </td>
2759 <td style="font-size: 11px; padding: 5px;"> </td>
2760 </tr>
2761
2762 <tr bgcolor="#fcfcfc">
2763 <td style="font-weight: bold; font-size: 11px; padding: 5px;">IsMainThread < /td>
2764 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2765 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2766 <td style="font-size: 11px; padding: 5px;">window.document !== undefined </t d>
2767 <td style="font-size: 11px; padding: 5px;"> </td>
2768 </tr>
2769
2770 <tr bgcolor="#fcfcfc">
2771 <td style="font-weight: bold; font-size: 11px; padding: 5px;">CallOnMainThre ad </td>
2772 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2773 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2774 <td style="font-size: 11px; padding: 5px;">Worker.postMessage + Atomics.wait </td>
2775 <td style="font-size: 11px; padding: 5px;">Equivalent synchronization can be built. </td>
2776 </tr>
2777
2778 </table>
2779 <h3>PPB_FileIO</h3>
2780 <table>
2781 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
2782 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
2783 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
2784 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
2785 <td style="font-size: 11px; padding: 5px;">Web API </td>
2786 <td style="font-size: 11px; padding: 5px;">Limitations </td>
2787 </tr>
2788
2789 <tr bgcolor="#fcfcfc">
2790 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
2791 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2792 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
2793 <td style="font-size: 11px; padding: 5px;">FileReader / FileWrite (Entry.cre ateReader / Entry.createWriter) </td>
2794 <td style="font-size: 11px; padding: 5px;">Create and open are used differen tly, but the pieces are of equal power. </td>
2795 </tr>
2796
2797 <tr bgcolor="#fcfcfc">
2798 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Open </td>
2799 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2800 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
2801 <td style="font-size: 11px; padding: 5px;">FileReader / FileWrite (Entry.cre ateReader / Entry.createWriter) </td>
2802 <td style="font-size: 11px; padding: 5px;"> </td>
2803 </tr>
2804
2805 <tr bgcolor="#fcfcfc">
2806 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Query </td>
2807 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2808 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
2809 <td style="font-size: 11px; padding: 5px;">Entry.getMetadata </td>
2810 <td style="font-size: 11px; padding: 5px;"> </td>
2811 </tr>
2812
2813 <tr bgcolor="#fcfcfc">
2814 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Touch </td>
2815 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2816 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
2817 <td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent, but no access time either.</td>
2818 <td style="font-size: 11px; padding: 5px;">Modify time can be bumped by writ ing. </td>
2819 </tr>
2820
2821 <tr bgcolor="#fcfcfc">
2822 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Read </td>
2823 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2824 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
2825 <td style="font-size: 11px; padding: 5px;">Entry.getFile + Blob.slice + File Reader.getBinaryData </td>
2826 <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>
2827 </tr>
2828
2829 <tr bgcolor="#fcfcfc">
2830 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Write </td>
2831 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2832 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
2833 <td style="font-size: 11px; padding: 5px;">FileWriter.seek + FileWriter.writ e 'write*' Events </td>
2834 <td style="font-size: 11px; padding: 5px;"> </td>
2835 </tr>
2836
2837 <tr bgcolor="#fcfcfc">
2838 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetLength </td >
2839 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2840 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
2841 <td style="font-size: 11px; padding: 5px;">FileWriter.truncate + 'write*' Ev ents </td>
2842 <td style="font-size: 11px; padding: 5px;"> </td>
2843 </tr>
2844
2845 <tr bgcolor="#fcfcfc">
2846 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Flush </td>
2847 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2848 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2849 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent, no way to flush.</td>
2850 <td style="font-size: 11px; padding: 5px;"> </td>
2851 </tr>
2852
2853 <tr bgcolor="#fcfcfc">
2854 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Close </td>
2855 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2856 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
2857 <td style="font-size: 11px; padding: 5px;">No equivalent, open files and dir ectories are implicitly closed. </td>
2858 <td style="font-size: 11px; padding: 5px;"> </td>
2859 </tr>
2860
2861 <tr bgcolor="#fcfcfc">
2862 <td style="font-weight: bold; font-size: 11px; padding: 5px;">ReadToArray </ td>
2863 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2864 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2865 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent.</td>
2866 <td style="font-size: 11px; padding: 5px;">Allows multiple subrange reads in parallel. </td>
2867 </tr>
2868
2869 </table>
2870 <h3>PPB_FileRef</h3>
2871 <table>
2872 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
2873 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
2874 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
2875 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
2876 <td style="font-size: 11px; padding: 5px;">Web API </td>
2877 <td style="font-size: 11px; padding: 5px;">Limitations </td>
2878 </tr>
2879
2880 <tr bgcolor="#fcfcfc">
2881 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
2882 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2883 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
2884 <td style="font-size: 11px; padding: 5px;">Entry.getFile(..., {create:true}) </td>
2885 <td style="font-size: 11px; padding: 5px;"> </td>
2886 </tr>
2887
2888 <tr bgcolor="#fcfcfc">
2889 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetFileSystemT ype </td>
2890 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2891 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
2892 <td style="font-size: 11px; padding: 5px;">FileSystem.type </td>
2893 <td style="font-size: 11px; padding: 5px;"> </td>
2894 </tr>
2895
2896 <tr bgcolor="#fcfcfc">
2897 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetName </td>
2898 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2899 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
2900 <td style="font-size: 11px; padding: 5px;">Entry.name </td>
2901 <td style="font-size: 11px; padding: 5px;"> </td>
2902 </tr>
2903
2904 <tr bgcolor="#fcfcfc">
2905 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetPath </td>
2906 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2907 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
2908 <td style="font-size: 11px; padding: 5px;">Entry.fullPath </td>
2909 <td style="font-size: 11px; padding: 5px;"> </td>
2910 </tr>
2911
2912 <tr bgcolor="#fcfcfc">
2913 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetParent </td >
2914 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2915 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
2916 <td style="font-size: 11px; padding: 5px;">Entry.getParent </td>
2917 <td style="font-size: 11px; padding: 5px;"> </td>
2918 </tr>
2919
2920 <tr bgcolor="#fcfcfc">
2921 <td style="font-weight: bold; font-size: 11px; padding: 5px;">MakeDirectory </td>
2922 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2923 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
2924 <td style="font-size: 11px; padding: 5px;">Entry.getDirectory(..., {create:t rue}) </td>
2925 <td style="font-size: 11px; padding: 5px;"> </td>
2926 </tr>
2927
2928 <tr bgcolor="#fcfcfc">
2929 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Touch </td>
2930 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2931 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
2932 <td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent, but no access time either.</td>
2933 <td style="font-size: 11px; padding: 5px;">Modify time can be bumped by writ ing. </td>
2934 </tr>
2935
2936 <tr bgcolor="#fcfcfc">
2937 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Delete </td>
2938 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2939 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
2940 <td style="font-size: 11px; padding: 5px;">Entry.remove </td>
2941 <td style="font-size: 11px; padding: 5px;"> </td>
2942 </tr>
2943
2944 <tr bgcolor="#fcfcfc">
2945 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Rename </td>
2946 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2947 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
2948 <td style="font-size: 11px; padding: 5px;">Entry.moveTo </td>
2949 <td style="font-size: 11px; padding: 5px;"> </td>
2950 </tr>
2951
2952 <tr bgcolor="#fcfcfc">
2953 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Query </td>
2954 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2955 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2956 <td style="font-size: 11px; padding: 5px;">Entry.getMetadata </td>
2957 <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>
2958 </tr>
2959
2960 <tr bgcolor="#fcfcfc">
2961 <td style="font-weight: bold; font-size: 11px; padding: 5px;">ReadDirectoryE ntries </td>
2962 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2963 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
2964 <td style="font-size: 11px; padding: 5px;">Directory.readEntries </td>
2965 <td style="font-size: 11px; padding: 5px;"> </td>
2966 </tr>
2967
2968 </table>
2969 <h3>PPB_FileSystem</h3>
2970 <table>
2971 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
2972 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
2973 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
2974 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
2975 <td style="font-size: 11px; padding: 5px;">Web API </td>
2976 <td style="font-size: 11px; padding: 5px;">Limitations </td>
2977 </tr>
2978
2979 <tr bgcolor="#fcfcfc">
2980 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
2981 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2982 <td style="font-size: 11px; padding: 5px;">FS (partial) </td>
2983 <td style="font-size: 11px; padding: 5px;">window.requestFileSystem </td>
2984 <td style="font-size: 11px; padding: 5px;">JS API does both in one step </td >
2985 </tr>
2986
2987 <tr bgcolor="#fcfcfc">
2988 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Open </td>
2989 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2990 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2991 <td style="font-size: 11px; padding: 5px;">window.requestFileSystem </td>
2992 <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>
2993 </tr>
2994
2995 <tr bgcolor="#fcfcfc">
2996 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetType </td>
2997 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
2998 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
2999 <td style="font-size: 11px; padding: 5px;">FileSystem.type </td>
3000 <td style="font-size: 11px; padding: 5px;"> </td>
3001 </tr>
3002
3003 </table>
3004 <h3>PPB_Fullscreen</h3>
3005 <table>
3006 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
3007 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
3008 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
3009 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
3010 <td style="font-size: 11px; padding: 5px;">Web API </td>
3011 <td style="font-size: 11px; padding: 5px;">Limitations </td>
3012 </tr>
3013
3014 <tr bgcolor="#fcfcfc">
3015 <td style="font-weight: bold; font-size: 11px; padding: 5px;">IsFullScreen < /td>
3016 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3017 <td style="font-size: 11px; padding: 5px;">html5.h </td>
3018 <td style="font-size: 11px; padding: 5px;">Document.fullscreenEnabled </td>
3019 <td style="font-size: 11px; padding: 5px;"> </td>
3020 </tr>
3021
3022 <tr bgcolor="#fcfcfc">
3023 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetFullscreen </td>
3024 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3025 <td style="font-size: 11px; padding: 5px;">html5.h </td>
3026 <td style="font-size: 11px; padding: 5px;">Document.requestFullscreen </td>
3027 <td style="font-size: 11px; padding: 5px;"> </td>
3028 </tr>
3029
3030 <tr bgcolor="#fcfcfc">
3031 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetScreenSize </td>
3032 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3033 <td style="font-size: 11px; padding: 5px;">html5.h </td>
3034 <td style="font-size: 11px; padding: 5px;">Document.exitFullscreen </td>
3035 <td style="font-size: 11px; padding: 5px;"> </td>
3036 </tr>
3037
3038 </table>
3039 <h3>PPB_Gamepad</h3>
3040 <table>
3041 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
3042 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
3043 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
3044 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
3045 <td style="font-size: 11px; padding: 5px;">Web API </td>
3046 <td style="font-size: 11px; padding: 5px;">Limitations </td>
3047 </tr>
3048
3049 <tr bgcolor="#fcfcfc">
3050 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Sample </td>
3051 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3052 <td style="font-size: 11px; padding: 5px;">SDL </td>
3053 <td style="font-size: 11px; padding: 5px;">Gamepad.* </td>
3054 <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 spec'd ).</td>
3055 </tr>
3056
3057 </table>
3058 <h3>PPB_Graphics2D</h3>
3059 <table>
3060 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
3061 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
3062 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
3063 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
3064 <td style="font-size: 11px; padding: 5px;">Web API </td>
3065 <td style="font-size: 11px; padding: 5px;">Limitations </td>
3066 </tr>
3067
3068 <tr bgcolor="#fcfcfc">
3069 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
3070 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3071 <td style="font-size: 11px; padding: 5px;">SDL </td>
3072 <td style="font-size: 11px; padding: 5px;">Canvas.getContext('2d') </td>
3073 <td style="font-size: 11px; padding: 5px;"> </td>
3074 </tr>
3075
3076 <tr bgcolor="#fcfcfc">
3077 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Describe </td>
3078 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3079 <td style="font-size: 11px; padding: 5px;">SDL </td>
3080 <td style="font-size: 11px; padding: 5px;">Canvas.clientWidth + Canvas.clien tHeight </td>
3081 <td style="font-size: 11px; padding: 5px;"> </td>
3082 </tr>
3083
3084 <tr bgcolor="#fcfcfc">
3085 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PaintImageData </td>
3086 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3087 <td style="font-size: 11px; padding: 5px;">SDL </td>
3088 <td style="font-size: 11px; padding: 5px;">CanvasRenderingContext2d.putImage Data </td>
3089 <td style="font-size: 11px; padding: 5px;"> </td>
3090 </tr>
3091
3092 <tr bgcolor="#fcfcfc">
3093 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Scroll </td>
3094 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3095 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3096 <td style="font-size: 11px; padding: 5px;">CanvasRenderingContext2d.scrollIn toView </td>
3097 <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>
3098 </tr>
3099
3100 <tr bgcolor="#fcfcfc">
3101 <td style="font-weight: bold; font-size: 11px; padding: 5px;">ReplaceContent s </td>
3102 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3103 <td style="font-size: 11px; padding: 5px;">SDL </td>
3104 <td style="font-size: 11px; padding: 5px;">CanvasRenderingContext2d.drawImag e </td>
3105 <td style="font-size: 11px; padding: 5px;"> </td>
3106 </tr>
3107
3108 <tr bgcolor="#fcfcfc">
3109 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Flush </td>
3110 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3111 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3112 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - Only retu rning to the event loop triggers the flush.</td>
3113 <td style="font-size: 11px; padding: 5px;"> </td>
3114 </tr>
3115
3116 <tr bgcolor="#fcfcfc">
3117 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetScale </td>
3118 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3119 <td style="font-size: 11px; padding: 5px;">SDL </td>
3120 <td style="font-size: 11px; padding: 5px;">CanvasRenderingContext2d.scale </ td>
3121 <td style="font-size: 11px; padding: 5px;"> </td>
3122 </tr>
3123
3124 <tr bgcolor="#fcfcfc">
3125 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetScale </td>
3126 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3127 <td style="font-size: 11px; padding: 5px;">SDL </td>
3128 <td style="font-size: 11px; padding: 5px;">CanvasRenderingContext2d.currentT ransform </td>
3129 <td style="font-size: 11px; padding: 5px;"> </td>
3130 </tr>
3131
3132 <tr bgcolor="#fcfcfc">
3133 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetLayerTransf orm </td>
3134 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3135 <td style="font-size: 11px; padding: 5px;">SDL </td>
3136 <td style="font-size: 11px; padding: 5px;">CanvasRenderingContext2d.setTrans form
3137 CanvasRenderingContext2d.scale
3138 CanvasRenderingContext2d.translate </td>
3139 <td style="font-size: 11px; padding: 5px;"> </td>
3140 </tr>
3141
3142 </table>
3143 <h3>PPB_Graphics3D</h3>
3144 <table>
3145 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
3146 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
3147 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
3148 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
3149 <td style="font-size: 11px; padding: 5px;">Web API </td>
3150 <td style="font-size: 11px; padding: 5px;">Limitations </td>
3151 </tr>
3152
3153 <tr bgcolor="#fcfcfc">
3154 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetAttribMaxVa lue </td>
3155 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3156 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3157 <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>
3158 <td style="font-size: 11px; padding: 5px;"> </td>
3159 </tr>
3160
3161 <tr bgcolor="#fcfcfc">
3162 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
3163 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3164 <td style="font-size: 11px; padding: 5px;">SDL </td>
3165 <td style="font-size: 11px; padding: 5px;">Canvas.getContext </td>
3166 <td style="font-size: 11px; padding: 5px;"> </td>
3167 </tr>
3168
3169 <tr bgcolor="#fcfcfc">
3170 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetAttribs </t d>
3171 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3172 <td style="font-size: 11px; padding: 5px;">SDL </td>
3173 <td style="font-size: 11px; padding: 5px;">WebGLRenderingContext.getContextA ttributes </td>
3174 <td style="font-size: 11px; padding: 5px;"> </td>
3175 </tr>
3176
3177 <tr bgcolor="#fcfcfc">
3178 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetAttribs </t d>
3179 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3180 <td style="font-size: 11px; padding: 5px;">SDL </td>
3181 <td style="font-size: 11px; padding: 5px;">Canvas.getContext(.., OPTIONS) </ td>
3182 <td style="font-size: 11px; padding: 5px;"> </td>
3183 </tr>
3184
3185 <tr bgcolor="#fcfcfc">
3186 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetError </td>
3187 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3188 <td style="font-size: 11px; padding: 5px;">SDL </td>
3189 <td style="font-size: 11px; padding: 5px;">WebGLRenderingContext.getError </ td>
3190 <td style="font-size: 11px; padding: 5px;"> </td>
3191 </tr>
3192
3193 <tr bgcolor="#fcfcfc">
3194 <td style="font-weight: bold; font-size: 11px; padding: 5px;">ResizeBuffers </td>
3195 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3196 <td style="font-size: 11px; padding: 5px;">SDL </td>
3197 <td style="font-size: 11px; padding: 5px;">Canvas.width = w; Canvas.height = h; </td>
3198 <td style="font-size: 11px; padding: 5px;"> </td>
3199 </tr>
3200
3201 <tr bgcolor="#fcfcfc">
3202 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SwapBuffers </ td>
3203 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3204 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3205 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No way to explicitly flip a frame, must return to the event loop.</td>
3206 <td style="font-size: 11px; padding: 5px;"> </td>
3207 </tr>
3208
3209 </table>
3210 <h3>PPB_ImageData</h3>
3211 <table>
3212 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
3213 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
3214 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
3215 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
3216 <td style="font-size: 11px; padding: 5px;">Web API </td>
3217 <td style="font-size: 11px; padding: 5px;">Limitations </td>
3218 </tr>
3219
3220 <tr bgcolor="#fcfcfc">
3221 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetNativeImage DataFormat </td>
3222 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3223 <td style="font-size: 11px; padding: 5px;">SDL </td>
3224 <td style="font-size: 11px; padding: 5px;">ImageData mandates RGBA order </t d>
3225 <td style="font-size: 11px; padding: 5px;"> </td>
3226 </tr>
3227
3228 <tr bgcolor="#fcfcfc">
3229 <td style="font-weight: bold; font-size: 11px; padding: 5px;">IsImageDataFor matSupported </td>
3230 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3231 <td style="font-size: 11px; padding: 5px;">SDL </td>
3232 <td style="font-size: 11px; padding: 5px;">ImageData mandates RGBA order </t d>
3233 <td style="font-size: 11px; padding: 5px;"> </td>
3234 </tr>
3235
3236 <tr bgcolor="#fcfcfc">
3237 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
3238 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3239 <td style="font-size: 11px; padding: 5px;">SDL </td>
3240 <td style="font-size: 11px; padding: 5px;">CanvasRenderingContext2d.createIm ageData </td>
3241 <td style="font-size: 11px; padding: 5px;"> </td>
3242 </tr>
3243
3244 <tr bgcolor="#fcfcfc">
3245 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Describe </td>
3246 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3247 <td style="font-size: 11px; padding: 5px;">SDL </td>
3248 <td style="font-size: 11px; padding: 5px;">ImageData never has a stride </td >
3249 <td style="font-size: 11px; padding: 5px;"> </td>
3250 </tr>
3251
3252 <tr bgcolor="#fcfcfc">
3253 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Map </td>
3254 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3255 <td style="font-size: 11px; padding: 5px;">SDL </td>
3256 <td style="font-size: 11px; padding: 5px;">ImageData.data </td>
3257 <td style="font-size: 11px; padding: 5px;"> </td>
3258 </tr>
3259
3260 <tr bgcolor="#fcfcfc">
3261 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Unmap </td>
3262 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3263 <td style="font-size: 11px; padding: 5px;">SDL </td>
3264 <td style="font-size: 11px; padding: 5px;">ImageData.data </td>
3265 <td style="font-size: 11px; padding: 5px;"> </td>
3266 </tr>
3267
3268 </table>
3269 <h3>PPB_InputEvent</h3>
3270 <table>
3271 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
3272 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
3273 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
3274 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
3275 <td style="font-size: 11px; padding: 5px;">Web API </td>
3276 <td style="font-size: 11px; padding: 5px;">Limitations </td>
3277 </tr>
3278
3279 <tr bgcolor="#fcfcfc">
3280 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RequestInputEv ents </td>
3281 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3282 <td style="font-size: 11px; padding: 5px;">SDL </td>
3283 <td style="font-size: 11px; padding: 5px;">No direct equivalent </td>
3284 <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>
3285 </tr>
3286
3287 <tr bgcolor="#fcfcfc">
3288 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RequestFilteri ngInputEvents </td>
3289 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3290 <td style="font-size: 11px; padding: 5px;">SDL </td>
3291 <td style="font-size: 11px; padding: 5px;">mouse* key* wheel* touch* composi tion* Events </td>
3292 <td style="font-size: 11px; padding: 5px;"> </td>
3293 </tr>
3294
3295 <tr bgcolor="#fcfcfc">
3296 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
3297 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3298 <td style="font-size: 11px; padding: 5px;">SDL </td>
3299 <td style="font-size: 11px; padding: 5px;">Element.addEventListener </td>
3300 <td style="font-size: 11px; padding: 5px;"> </td>
3301 </tr>
3302
3303 <tr bgcolor="#fcfcfc">
3304 <td style="font-weight: bold; font-size: 11px; padding: 5px;">ClearInputEven tRequest </td>
3305 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3306 <td style="font-size: 11px; padding: 5px;">SDL </td>
3307 <td style="font-size: 11px; padding: 5px;">Element.removeEventListener </td>
3308 <td style="font-size: 11px; padding: 5px;"> </td>
3309 </tr>
3310
3311 <tr bgcolor="#fcfcfc">
3312 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetType </td>
3313 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3314 <td style="font-size: 11px; padding: 5px;">SDL </td>
3315 <td style="font-size: 11px; padding: 5px;">Event class descendants </td>
3316 <td style="font-size: 11px; padding: 5px;"> </td>
3317 </tr>
3318
3319 <tr bgcolor="#fcfcfc">
3320 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetTimeStamp < /td>
3321 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3322 <td style="font-size: 11px; padding: 5px;">SDL </td>
3323 <td style="font-size: 11px; padding: 5px;">Event.timeStamp </td>
3324 <td style="font-size: 11px; padding: 5px;"> </td>
3325 </tr>
3326
3327 <tr bgcolor="#fcfcfc">
3328 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetModifiers < /td>
3329 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3330 <td style="font-size: 11px; padding: 5px;">SDL </td>
3331 <td style="font-size: 11px; padding: 5px;">*Event.altKey/shiftKey/metaKey/ct rlKey </td>
3332 <td style="font-size: 11px; padding: 5px;"> </td>
3333 </tr>
3334
3335 </table>
3336 <h3>PPB_MouseInputEvent</h3>
3337 <table>
3338 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
3339 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
3340 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
3341 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
3342 <td style="font-size: 11px; padding: 5px;">Web API </td>
3343 <td style="font-size: 11px; padding: 5px;">Limitations </td>
3344 </tr>
3345
3346 <tr bgcolor="#fcfcfc">
3347 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
3348 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3349 <td style="font-size: 11px; padding: 5px;">SDL </td>
3350 <td style="font-size: 11px; padding: 5px;">MouseEvent </td>
3351 <td style="font-size: 11px; padding: 5px;"> </td>
3352 </tr>
3353
3354 <tr bgcolor="#fcfcfc">
3355 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetButton </td >
3356 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3357 <td style="font-size: 11px; padding: 5px;">SDL </td>
3358 <td style="font-size: 11px; padding: 5px;">MouseEvent.button </td>
3359 <td style="font-size: 11px; padding: 5px;"> </td>
3360 </tr>
3361
3362 <tr bgcolor="#fcfcfc">
3363 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetPosition </ td>
3364 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3365 <td style="font-size: 11px; padding: 5px;">SDL </td>
3366 <td style="font-size: 11px; padding: 5px;">MouseEvent.client*/page*/offset* </td>
3367 <td style="font-size: 11px; padding: 5px;"> </td>
3368 </tr>
3369
3370 <tr bgcolor="#fcfcfc">
3371 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetClickCount </td>
3372 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3373 <td style="font-size: 11px; padding: 5px;">SDL </td>
3374 <td style="font-size: 11px; padding: 5px;">dblclick' vs 'mousedown' Events < /td>
3375 <td style="font-size: 11px; padding: 5px;"> </td>
3376 </tr>
3377
3378 <tr bgcolor="#fcfcfc">
3379 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetMovement </ td>
3380 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3381 <td style="font-size: 11px; padding: 5px;">SDL </td>
3382 <td style="font-size: 11px; padding: 5px;">MouseEvent.movement* </td>
3383 <td style="font-size: 11px; padding: 5px;"> </td>
3384 </tr>
3385
3386 </table>
3387 <h3>PPB_WheelInputEvent</h3>
3388 <table>
3389 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
3390 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
3391 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
3392 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
3393 <td style="font-size: 11px; padding: 5px;">Web API </td>
3394 <td style="font-size: 11px; padding: 5px;">Limitations </td>
3395 </tr>
3396
3397 <tr bgcolor="#fcfcfc">
3398 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
3399 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3400 <td style="font-size: 11px; padding: 5px;">SDL </td>
3401 <td style="font-size: 11px; padding: 5px;">WheelEvent </td>
3402 <td style="font-size: 11px; padding: 5px;"> </td>
3403 </tr>
3404
3405 <tr bgcolor="#fcfcfc">
3406 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetDelta </td>
3407 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3408 <td style="font-size: 11px; padding: 5px;">SDL </td>
3409 <td style="font-size: 11px; padding: 5px;">WheelEvent.delta* </td>
3410 <td style="font-size: 11px; padding: 5px;"> </td>
3411 </tr>
3412
3413 <tr bgcolor="#fcfcfc">
3414 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetTicks </td>
3415 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3416 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3417 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - deltaMode kinda of contains this info, but incompletely.</td>
3418 <td style="font-size: 11px; padding: 5px;"> </td>
3419 </tr>
3420
3421 <tr bgcolor="#fcfcfc">
3422 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetScrollByPag e </td>
3423 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3424 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3425 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - deltaMode kinda of contains this info, but incompletely.</td>
3426 <td style="font-size: 11px; padding: 5px;"> </td>
3427 </tr>
3428
3429 </table>
3430 <h3>PPB_KeyboardInputEvent</h3>
3431 <table>
3432 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
3433 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
3434 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
3435 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
3436 <td style="font-size: 11px; padding: 5px;">Web API </td>
3437 <td style="font-size: 11px; padding: 5px;">Limitations </td>
3438 </tr>
3439
3440 <tr bgcolor="#fcfcfc">
3441 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
3442 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3443 <td style="font-size: 11px; padding: 5px;">SDL </td>
3444 <td style="font-size: 11px; padding: 5px;">KeyboardEvent </td>
3445 <td style="font-size: 11px; padding: 5px;"> </td>
3446 </tr>
3447
3448 <tr bgcolor="#fcfcfc">
3449 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetKeyCode </t d>
3450 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3451 <td style="font-size: 11px; padding: 5px;">SDL </td>
3452 <td style="font-size: 11px; padding: 5px;">KeyboardEvent.keyCode </td>
3453 <td style="font-size: 11px; padding: 5px;"> </td>
3454 </tr>
3455
3456 <tr bgcolor="#fcfcfc">
3457 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetCharacterTe xt </td>
3458 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3459 <td style="font-size: 11px; padding: 5px;">SDL </td>
3460 <td style="font-size: 11px; padding: 5px;">KeyboardEvent.key </td>
3461 <td style="font-size: 11px; padding: 5px;"> </td>
3462 </tr>
3463
3464 <tr bgcolor="#fcfcfc">
3465 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetCode </td>
3466 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3467 <td style="font-size: 11px; padding: 5px;">SDL </td>
3468 <td style="font-size: 11px; padding: 5px;">KeyboardEvent.code </td>
3469 <td style="font-size: 11px; padding: 5px;"> </td>
3470 </tr>
3471
3472 </table>
3473 <h3>PPB_TouchInputEvent</h3>
3474 <table>
3475 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
3476 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
3477 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
3478 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
3479 <td style="font-size: 11px; padding: 5px;">Web API </td>
3480 <td style="font-size: 11px; padding: 5px;">Limitations </td>
3481 </tr>
3482
3483 <tr bgcolor="#fcfcfc">
3484 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
3485 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3486 <td style="font-size: 11px; padding: 5px;">SDL </td>
3487 <td style="font-size: 11px; padding: 5px;">TouchEvent </td>
3488 <td style="font-size: 11px; padding: 5px;"> </td>
3489 </tr>
3490
3491 <tr bgcolor="#fcfcfc">
3492 <td style="font-weight: bold; font-size: 11px; padding: 5px;">AddTouchPoint </td>
3493 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3494 <td style="font-size: 11px; padding: 5px;">SDL </td>
3495 <td style="font-size: 11px; padding: 5px;">TouchEvent.touches.push </td>
3496 <td style="font-size: 11px; padding: 5px;"> </td>
3497 </tr>
3498
3499 <tr bgcolor="#fcfcfc">
3500 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetTouchCount </td>
3501 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3502 <td style="font-size: 11px; padding: 5px;">SDL </td>
3503 <td style="font-size: 11px; padding: 5px;">TouchEvent.touches.length </td>
3504 <td style="font-size: 11px; padding: 5px;"> </td>
3505 </tr>
3506
3507 <tr bgcolor="#fcfcfc">
3508 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetTouchByInde x </td>
3509 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3510 <td style="font-size: 11px; padding: 5px;">SDL </td>
3511 <td style="font-size: 11px; padding: 5px;">TouchEvent.touches[i] </td>
3512 <td style="font-size: 11px; padding: 5px;"> </td>
3513 </tr>
3514
3515 <tr bgcolor="#fcfcfc">
3516 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetTouchById < /td>
3517 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3518 <td style="font-size: 11px; padding: 5px;">SDL </td>
3519 <td style="font-size: 11px; padding: 5px;">Touch.indentifer (to figure this out yourself) </td>
3520 <td style="font-size: 11px; padding: 5px;"> </td>
3521 </tr>
3522
3523 </table>
3524 <h3>PPB_IMEInputEvent</h3>
3525 <table>
3526 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
3527 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
3528 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
3529 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
3530 <td style="font-size: 11px; padding: 5px;">Web API </td>
3531 <td style="font-size: 11px; padding: 5px;">Limitations </td>
3532 </tr>
3533
3534 <tr bgcolor="#fcfcfc">
3535 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
3536 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3537 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3538 <td style="font-size: 11px; padding: 5px;">CompositionEvent </td>
3539 <td style="font-size: 11px; padding: 5px;"> </td>
3540 </tr>
3541
3542 <tr bgcolor="#fcfcfc">
3543 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetText </td>
3544 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3545 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3546 <td style="font-size: 11px; padding: 5px;">CompositionEvent.data </td>
3547 <td style="font-size: 11px; padding: 5px;"> </td>
3548 </tr>
3549
3550 <tr bgcolor="#fcfcfc">
3551 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetSegmentNumb er </td>
3552 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3553 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3554 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
3555 <td style="font-size: 11px; padding: 5px;"> </td>
3556 </tr>
3557
3558 <tr bgcolor="#fcfcfc">
3559 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetSegmentOffs et </td>
3560 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3561 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3562 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
3563 <td style="font-size: 11px; padding: 5px;"> </td>
3564 </tr>
3565
3566 <tr bgcolor="#fcfcfc">
3567 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetTargetSegme nt </td>
3568 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3569 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3570 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
3571 <td style="font-size: 11px; padding: 5px;"> </td>
3572 </tr>
3573
3574 <tr bgcolor="#fcfcfc">
3575 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetSelection < /td>
3576 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3577 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3578 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
3579 <td style="font-size: 11px; padding: 5px;"> </td>
3580 </tr>
3581
3582 </table>
3583 <h3>PPB_Instance</h3>
3584 <table>
3585 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
3586 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
3587 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
3588 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
3589 <td style="font-size: 11px; padding: 5px;">Web API </td>
3590 <td style="font-size: 11px; padding: 5px;">Limitations </td>
3591 </tr>
3592
3593 <tr bgcolor="#fcfcfc">
3594 <td style="font-weight: bold; font-size: 11px; padding: 5px;">BindGraphics < /td>
3595 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3596 <td style="font-size: 11px; padding: 5px;">SDL </td>
3597 <td style="font-size: 11px; padding: 5px;">Canvas.getContext (moot as bindin g is automatic). </td>
3598 <td style="font-size: 11px; padding: 5px;"> </td>
3599 </tr>
3600
3601 <tr bgcolor="#fcfcfc">
3602 <td style="font-weight: bold; font-size: 11px; padding: 5px;">IsFullFrame </ td>
3603 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3604 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3605 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent to mime type handlers.</td>
3606 <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>
3607 </tr>
3608
3609 </table>
3610 <h3>PPB_MediaStreamAudioTrack</h3>
3611 <table>
3612 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
3613 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
3614 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
3615 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
3616 <td style="font-size: 11px; padding: 5px;">Web API </td>
3617 <td style="font-size: 11px; padding: 5px;">Limitations </td>
3618 </tr>
3619
3620 <tr bgcolor="#fcfcfc">
3621 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Configure </td >
3622 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3623 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3624 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
3625 <td style="font-size: 11px; padding: 5px;"> </td>
3626 </tr>
3627
3628 <tr bgcolor="#fcfcfc">
3629 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetAttrib </td >
3630 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3631 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3632 <td style="font-size: 11px; padding: 5px;">MediaStreamSettings.channelCount </td>
3633 <td style="font-size: 11px; padding: 5px;"> </td>
3634 </tr>
3635
3636 <tr bgcolor="#fcfcfc">
3637 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
3638 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3639 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3640 <td style="font-size: 11px; padding: 5px;">MediaStreamSettings.sampleSize </ td>
3641 <td style="font-size: 11px; padding: 5px;"> </td>
3642 </tr>
3643
3644 <tr bgcolor="#fcfcfc">
3645 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
3646 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3647 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3648 <td style="font-size: 11px; padding: 5px;">MediaStreamSettings.sampleRate </ td>
3649 <td style="font-size: 11px; padding: 5px;"> </td>
3650 </tr>
3651
3652 <tr bgcolor="#fcfcfc">
3653 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
3654 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3655 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3656 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - no equiva lent to PP_MEDIASTREAMAUDIOTRACK_ATTRIB_BUFFERS</td>
3657 <td style="font-size: 11px; padding: 5px;"> </td>
3658 </tr>
3659
3660 <tr bgcolor="#fcfcfc">
3661 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
3662 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3663 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3664 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - no equiva lent to PP_MEDIASTREAMAUDIOTRACK_ATTRIB_DURATION</td>
3665 <td style="font-size: 11px; padding: 5px;"> </td>
3666 </tr>
3667
3668 <tr bgcolor="#fcfcfc">
3669 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetId </td>
3670 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3671 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3672 <td style="font-size: 11px; padding: 5px;">MediaStream.id </td>
3673 <td style="font-size: 11px; padding: 5px;"> </td>
3674 </tr>
3675
3676 <tr bgcolor="#fcfcfc">
3677 <td style="font-weight: bold; font-size: 11px; padding: 5px;">HasEnded </td>
3678 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3679 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3680 <td style="font-size: 11px; padding: 5px;">MediaStream.ended </td>
3681 <td style="font-size: 11px; padding: 5px;"> </td>
3682 </tr>
3683
3684 <tr bgcolor="#fcfcfc">
3685 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetBuffer </td >
3686 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3687 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3688 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
3689 <td style="font-size: 11px; padding: 5px;"> </td>
3690 </tr>
3691
3692 <tr bgcolor="#fcfcfc">
3693 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RecycleBuffer </td>
3694 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3695 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3696 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
3697 <td style="font-size: 11px; padding: 5px;"> </td>
3698 </tr>
3699
3700 <tr bgcolor="#fcfcfc">
3701 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Close </td>
3702 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3703 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3704 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
3705 <td style="font-size: 11px; padding: 5px;"> </td>
3706 </tr>
3707
3708 </table>
3709 <h3>PPB_MediaStreamVideoTrack</h3>
3710 <table>
3711 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
3712 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
3713 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
3714 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
3715 <td style="font-size: 11px; padding: 5px;">Web API </td>
3716 <td style="font-size: 11px; padding: 5px;">Limitations </td>
3717 </tr>
3718
3719 <tr bgcolor="#fcfcfc">
3720 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
3721 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3722 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3723 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
3724 <td style="font-size: 11px; padding: 5px;">Ability to create synthetic strea m. </td>
3725 </tr>
3726
3727 <tr bgcolor="#fcfcfc">
3728 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Configure </td >
3729 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3730 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3731 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
3732 <td style="font-size: 11px; padding: 5px;"> </td>
3733 </tr>
3734
3735 <tr bgcolor="#fcfcfc">
3736 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetAttrib </td >
3737 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3738 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3739 <td style="font-size: 11px; padding: 5px;">MediaStreamSettings.width </td>
3740 <td style="font-size: 11px; padding: 5px;"> </td>
3741 </tr>
3742
3743 <tr bgcolor="#fcfcfc">
3744 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
3745 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3746 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3747 <td style="font-size: 11px; padding: 5px;">MediaStreamSettings.height </td>
3748 <td style="font-size: 11px; padding: 5px;"> </td>
3749 </tr>
3750
3751 <tr bgcolor="#fcfcfc">
3752 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
3753 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3754 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3755 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - no equiva lent to PP_MEDIASTREAMVIDEOTRACK_ATTRIB_BUFFERED_FRAMES</td>
3756 <td style="font-size: 11px; padding: 5px;"> </td>
3757 </tr>
3758
3759 <tr bgcolor="#fcfcfc">
3760 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
3761 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3762 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3763 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - no equiva lent to PP_MEDIASTREAMVIDEOTRACK_ATTRIB_FORMAT</td>
3764 <td style="font-size: 11px; padding: 5px;"> </td>
3765 </tr>
3766
3767 <tr bgcolor="#fcfcfc">
3768 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetId </td>
3769 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3770 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3771 <td style="font-size: 11px; padding: 5px;">MediaStream.id </td>
3772 <td style="font-size: 11px; padding: 5px;"> </td>
3773 </tr>
3774
3775 <tr bgcolor="#fcfcfc">
3776 <td style="font-weight: bold; font-size: 11px; padding: 5px;">HasEnded </td>
3777 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3778 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3779 <td style="font-size: 11px; padding: 5px;">MediaStream.ended </td>
3780 <td style="font-size: 11px; padding: 5px;"> </td>
3781 </tr>
3782
3783 <tr bgcolor="#fcfcfc">
3784 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetFrame </td>
3785 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3786 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3787 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
3788 <td style="font-size: 11px; padding: 5px;"> </td>
3789 </tr>
3790
3791 <tr bgcolor="#fcfcfc">
3792 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RecycleFrame < /td>
3793 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3794 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3795 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
3796 <td style="font-size: 11px; padding: 5px;"> </td>
3797 </tr>
3798
3799 <tr bgcolor="#fcfcfc">
3800 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Close </td>
3801 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3802 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3803 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
3804 <td style="font-size: 11px; padding: 5px;"> </td>
3805 </tr>
3806
3807 <tr bgcolor="#fcfcfc">
3808 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetEmptyFrame </td>
3809 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3810 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3811 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
3812 <td style="font-size: 11px; padding: 5px;"> </td>
3813 </tr>
3814
3815 <tr bgcolor="#fcfcfc">
3816 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PutFrame </td>
3817 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3818 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
3819 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
3820 <td style="font-size: 11px; padding: 5px;"> </td>
3821 </tr>
3822
3823 </table>
3824 <h3>PPB_MessageLoop</h3>
3825 <table>
3826 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
3827 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
3828 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
3829 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
3830 <td style="font-size: 11px; padding: 5px;">Web API </td>
3831 <td style="font-size: 11px; padding: 5px;">Limitations </td>
3832 </tr>
3833
3834 <tr bgcolor="#fcfcfc">
3835 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
3836 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3837 <td style="font-size: 11px; padding: 5px;">N/A </td>
3838 <td style="font-size: 11px; padding: 5px;">Mostly moot, workers get an impli cit event loop. </td>
3839 <td style="font-size: 11px; padding: 5px;"> </td>
3840 </tr>
3841
3842 <tr bgcolor="#fcfcfc">
3843 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetForMainThre ad </td>
3844 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3845 <td style="font-size: 11px; padding: 5px;">N/A </td>
3846 <td style="font-size: 11px; padding: 5px;">Mostly moot, workers get an impli cit event loop. </td>
3847 <td style="font-size: 11px; padding: 5px;"> </td>
3848 </tr>
3849
3850 <tr bgcolor="#fcfcfc">
3851 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetCurrent </t d>
3852 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3853 <td style="font-size: 11px; padding: 5px;">N/A </td>
3854 <td style="font-size: 11px; padding: 5px;">Mostly moot, workers get an impli cit event loop. </td>
3855 <td style="font-size: 11px; padding: 5px;"> </td>
3856 </tr>
3857
3858 <tr bgcolor="#fcfcfc">
3859 <td style="font-weight: bold; font-size: 11px; padding: 5px;">AttachToCurren tThread </td>
3860 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3861 <td style="font-size: 11px; padding: 5px;">N/A </td>
3862 <td style="font-size: 11px; padding: 5px;">Mostly moot, workers get an impli cit event loop. </td>
3863 <td style="font-size: 11px; padding: 5px;"> </td>
3864 </tr>
3865
3866 <tr bgcolor="#fcfcfc">
3867 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Run </td>
3868 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3869 <td style="font-size: 11px; padding: 5px;">N/A </td>
3870 <td style="font-size: 11px; padding: 5px;">Mostly moot, workers get an impli cit event loop. </td>
3871 <td style="font-size: 11px; padding: 5px;"> </td>
3872 </tr>
3873
3874 <tr bgcolor="#fcfcfc">
3875 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PostWork </td>
3876 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3877 <td style="font-size: 11px; padding: 5px;">N/A </td>
3878 <td style="font-size: 11px; padding: 5px;">Mostly moot, workers get an impli cit event loop. </td>
3879 <td style="font-size: 11px; padding: 5px;"> </td>
3880 </tr>
3881
3882 <tr bgcolor="#fcfcfc">
3883 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PostQuit </td>
3884 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3885 <td style="font-size: 11px; padding: 5px;">N/A </td>
3886 <td style="font-size: 11px; padding: 5px;">Mostly moot, workers get an impli cit event loop. </td>
3887 <td style="font-size: 11px; padding: 5px;"> </td>
3888 </tr>
3889
3890 </table>
3891 <h3>PPB_Messaging</h3>
3892 <table>
3893 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
3894 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
3895 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
3896 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
3897 <td style="font-size: 11px; padding: 5px;">Web API </td>
3898 <td style="font-size: 11px; padding: 5px;">Limitations </td>
3899 </tr>
3900
3901 <tr bgcolor="#fcfcfc">
3902 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PostMessage </ td>
3903 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3904 <td style="font-size: 11px; padding: 5px;">N/A </td>
3905 <td style="font-size: 11px; padding: 5px;">Window.postMessage </td>
3906 <td style="font-size: 11px; padding: 5px;"> </td>
3907 </tr>
3908
3909 <tr bgcolor="#fcfcfc">
3910 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RegisterMessag eHandler </td>
3911 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3912 <td style="font-size: 11px; padding: 5px;">N/A </td>
3913 <td style="font-size: 11px; padding: 5px;">Window.addEventListener </td>
3914 <td style="font-size: 11px; padding: 5px;"> </td>
3915 </tr>
3916
3917 <tr bgcolor="#fcfcfc">
3918 <td style="font-weight: bold; font-size: 11px; padding: 5px;">UnregisterMess ageHandler </td>
3919 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3920 <td style="font-size: 11px; padding: 5px;">N/A </td>
3921 <td style="font-size: 11px; padding: 5px;">Window.removeEventListener </td>
3922 <td style="font-size: 11px; padding: 5px;"> </td>
3923 </tr>
3924
3925 </table>
3926 <h3>PPB_MouseCursor</h3>
3927 <table>
3928 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
3929 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
3930 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
3931 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
3932 <td style="font-size: 11px; padding: 5px;">Web API </td>
3933 <td style="font-size: 11px; padding: 5px;">Limitations </td>
3934 </tr>
3935
3936 <tr bgcolor="#fcfcfc">
3937 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetCursor </td >
3938 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3939 <td style="font-size: 11px; padding: 5px;">SDL </td>
3940 <td style="font-size: 11px; padding: 5px;">Element.style.cursor </td>
3941 <td style="font-size: 11px; padding: 5px;">Same set of stock cursors are sup ported.
3942 Custom cursors can be done with url(..).
3943 Dynamic custom cursors can be done with data URIs.
3944 CSS3 supports specifying the hotspot. </td>
3945 </tr>
3946
3947 </table>
3948 <h3>PPB_MouseLock</h3>
3949 <table>
3950 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
3951 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
3952 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
3953 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
3954 <td style="font-size: 11px; padding: 5px;">Web API </td>
3955 <td style="font-size: 11px; padding: 5px;">Limitations </td>
3956 </tr>
3957
3958 <tr bgcolor="#fcfcfc">
3959 <td style="font-weight: bold; font-size: 11px; padding: 5px;">LockMouse </td >
3960 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3961 <td style="font-size: 11px; padding: 5px;">SDL </td>
3962 <td style="font-size: 11px; padding: 5px;">Element.requestPointerLock </td>
3963 <td style="font-size: 11px; padding: 5px;"> </td>
3964 </tr>
3965
3966 <tr bgcolor="#fcfcfc">
3967 <td style="font-weight: bold; font-size: 11px; padding: 5px;">UnlockMouse </ td>
3968 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3969 <td style="font-size: 11px; padding: 5px;">SDL </td>
3970 <td style="font-size: 11px; padding: 5px;">Element.exitPointerLock </td>
3971 <td style="font-size: 11px; padding: 5px;"> </td>
3972 </tr>
3973
3974 </table>
3975 <h3>PPB_OpenGLES2</h3>
3976 <table>
3977 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
3978 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
3979 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
3980 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
3981 <td style="font-size: 11px; padding: 5px;">Web API </td>
3982 <td style="font-size: 11px; padding: 5px;">Limitations </td>
3983 </tr>
3984
3985 <tr bgcolor="#fcfcfc">
3986 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Several Method s </td>
3987 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
3988 <td style="font-size: 11px; padding: 5px;">OpenGLES </td>
3989 <td style="font-size: 11px; padding: 5px;">Close to WebGL 1.0 in functionali ty. </td>
3990 <td style="font-size: 11px; padding: 5px;"> </td>
3991 </tr>
3992
3993 <tr bgcolor="#fcfcfc">
3994 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
3995 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
3996 <td style="font-size: 11px; padding: 5px;"> </td>
3997 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - Without o ffscreen canvas, rendering must be done on the main thread.</td>
3998 <td style="font-size: 11px; padding: 5px;"> </td>
3999 </tr>
4000
4001 </table>
4002 <h3>PPB_TextInputController</h3>
4003 <table>
4004 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
4005 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
4006 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
4007 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
4008 <td style="font-size: 11px; padding: 5px;">Web API </td>
4009 <td style="font-size: 11px; padding: 5px;">Limitations </td>
4010 </tr>
4011
4012 <tr bgcolor="#fcfcfc">
4013 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetTextInputTy pe </td>
4014 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4015 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4016 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent hints to browser about canvas containing input.</td>
4017 <td style="font-size: 11px; padding: 5px;">Some developers would like to eit her be able to hint in this fashion, or preferrably the ability to intercept and display IME events / output inline inside a canvas. </td>
4018 </tr>
4019
4020 <tr bgcolor="#fcfcfc">
4021 <td style="font-weight: bold; font-size: 11px; padding: 5px;">UpdateCaretPos ition </td>
4022 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4023 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4024 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent hints to browser about canvas containing input.</td>
4025 <td style="font-size: 11px; padding: 5px;"> </td>
4026 </tr>
4027
4028 <tr bgcolor="#fcfcfc">
4029 <td style="font-weight: bold; font-size: 11px; padding: 5px;">CancelComposit ionText </td>
4030 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4031 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4032 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent hints to browser about canvas containing input.</td>
4033 <td style="font-size: 11px; padding: 5px;"> </td>
4034 </tr>
4035
4036 <tr bgcolor="#fcfcfc">
4037 <td style="font-weight: bold; font-size: 11px; padding: 5px;">UpdateSurround ingText </td>
4038 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4039 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4040 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent hints to browser about canvas containing input.</td>
4041 <td style="font-size: 11px; padding: 5px;"> </td>
4042 </tr>
4043
4044 </table>
4045 <h3>PPB_URLLoader</h3>
4046 <table>
4047 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
4048 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
4049 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
4050 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
4051 <td style="font-size: 11px; padding: 5px;">Web API </td>
4052 <td style="font-size: 11px; padding: 5px;">Limitations </td>
4053 </tr>
4054
4055 <tr bgcolor="#fcfcfc">
4056 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
4057 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4058 <td style="font-size: 11px; padding: 5px;">embind </td>
4059 <td style="font-size: 11px; padding: 5px;">new XMLHttpRequest(); </td>
4060 <td style="font-size: 11px; padding: 5px;"> </td>
4061 </tr>
4062
4063 <tr bgcolor="#fcfcfc">
4064 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Open </td>
4065 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4066 <td style="font-size: 11px; padding: 5px;">embind </td>
4067 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest.open </td>
4068 <td style="font-size: 11px; padding: 5px;"> </td>
4069 </tr>
4070
4071 <tr bgcolor="#fcfcfc">
4072 <td style="font-weight: bold; font-size: 11px; padding: 5px;">FollowRedirect </td>
4073 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4074 <td style="font-size: 11px; padding: 5px;">embind </td>
4075 <td style="font-size: 11px; padding: 5px;">Request.redirect </td>
4076 <td style="font-size: 11px; padding: 5px;"> </td>
4077 </tr>
4078
4079 <tr bgcolor="#fcfcfc">
4080 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
4081 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4082 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4083 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No XMLHTT PRequest equivalent</td>
4084 <td style="font-size: 11px; padding: 5px;"> </td>
4085 </tr>
4086
4087 <tr bgcolor="#fcfcfc">
4088 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetUploadProgr ess </td>
4089 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4090 <td style="font-size: 11px; padding: 5px;">embind </td>
4091 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest 'progress' Event < /td>
4092 <td style="font-size: 11px; padding: 5px;"> </td>
4093 </tr>
4094
4095 <tr bgcolor="#fcfcfc">
4096 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
4097 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4098 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4099 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No Fetch API equivalent</td>
4100 <td style="font-size: 11px; padding: 5px;"> </td>
4101 </tr>
4102
4103 <tr bgcolor="#fcfcfc">
4104 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetDownloadPro gress </td>
4105 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4106 <td style="font-size: 11px; padding: 5px;">embind </td>
4107 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest 'progress' Event < /td>
4108 <td style="font-size: 11px; padding: 5px;"> </td>
4109 </tr>
4110
4111 <tr bgcolor="#fcfcfc">
4112 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
4113 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4114 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4115 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No Fetch API equivalent</td>
4116 <td style="font-size: 11px; padding: 5px;"> </td>
4117 </tr>
4118
4119 <tr bgcolor="#fcfcfc">
4120 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetResponseInf o </td>
4121 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4122 <td style="font-size: 11px; padding: 5px;">embind </td>
4123 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest.getAllResponseHead ers </td>
4124 <td style="font-size: 11px; padding: 5px;"> </td>
4125 </tr>
4126
4127 <tr bgcolor="#fcfcfc">
4128 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
4129 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4130 <td style="font-size: 11px; padding: 5px;">embind </td>
4131 <td style="font-size: 11px; padding: 5px;">Fetch Response.* </td>
4132 <td style="font-size: 11px; padding: 5px;"> </td>
4133 </tr>
4134
4135 <tr bgcolor="#fcfcfc">
4136 <td style="font-weight: bold; font-size: 11px; padding: 5px;">ReadResponseBo dy </td>
4137 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4138 <td style="font-size: 11px; padding: 5px;">embind </td>
4139 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest.response </td>
4140 <td style="font-size: 11px; padding: 5px;"> </td>
4141 </tr>
4142
4143 <tr bgcolor="#fcfcfc">
4144 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
4145 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4146 <td style="font-size: 11px; padding: 5px;">embind </td>
4147 <td style="font-size: 11px; padding: 5px;">Body.* (Response is a Body) </td>
4148 <td style="font-size: 11px; padding: 5px;"> </td>
4149 </tr>
4150
4151 <tr bgcolor="#fcfcfc">
4152 <td style="font-weight: bold; font-size: 11px; padding: 5px;">FinishStreamin gToFile </td>
4153 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4154 <td style="font-size: 11px; padding: 5px;">embind </td>
4155 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
4156 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest and Fetch both ass ume streaming to memory, rather than directly to a storage. </td>
4157 </tr>
4158
4159 <tr bgcolor="#fcfcfc">
4160 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Close </td>
4161 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4162 <td style="font-size: 11px; padding: 5px;">embind </td>
4163 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest.abort </td>
4164 <td style="font-size: 11px; padding: 5px;"> </td>
4165 </tr>
4166
4167 <tr bgcolor="#fcfcfc">
4168 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
4169 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4170 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4171 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No Fetch API equivalent</td>
4172 <td style="font-size: 11px; padding: 5px;"> </td>
4173 </tr>
4174
4175 </table>
4176 <h3>PPB_URLRequestInfo</h3>
4177 <table>
4178 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
4179 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
4180 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
4181 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
4182 <td style="font-size: 11px; padding: 5px;">Web API </td>
4183 <td style="font-size: 11px; padding: 5px;">Limitations </td>
4184 </tr>
4185
4186 <tr bgcolor="#fcfcfc">
4187 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
4188 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4189 <td style="font-size: 11px; padding: 5px;">embind </td>
4190 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest </td>
4191 <td style="font-size: 11px; padding: 5px;"> </td>
4192 </tr>
4193
4194 <tr bgcolor="#fcfcfc">
4195 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
4196 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4197 <td style="font-size: 11px; padding: 5px;">embind </td>
4198 <td style="font-size: 11px; padding: 5px;">Fetch Request </td>
4199 <td style="font-size: 11px; padding: 5px;">No way to stream to a file. </td>
4200 </tr>
4201
4202 <tr bgcolor="#fcfcfc">
4203 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetProperty </ td>
4204 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4205 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4206 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent for XMLHttpRequest</td>
4207 <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>
4208 </tr>
4209
4210 <tr bgcolor="#fcfcfc">
4211 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
4212 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4213 <td style="font-size: 11px; padding: 5px;">embind </td>
4214 <td style="font-size: 11px; padding: 5px;">Request.* </td>
4215 <td style="font-size: 11px; padding: 5px;"> </td>
4216 </tr>
4217
4218 <tr bgcolor="#fcfcfc">
4219 <td style="font-weight: bold; font-size: 11px; padding: 5px;">AppendDataToBo dy </td>
4220 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4221 <td style="font-size: 11px; padding: 5px;">embind </td>
4222 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest.send </td>
4223 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - Both must have the whole body, rather than a chunk.</td>
4224 </tr>
4225
4226 <tr bgcolor="#fcfcfc">
4227 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
4228 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4229 <td style="font-size: 11px; padding: 5px;">embind </td>
4230 <td style="font-size: 11px; padding: 5px;">fetch(.., options:body) </td>
4231 <td style="font-size: 11px; padding: 5px;"> </td>
4232 </tr>
4233
4234 <tr bgcolor="#fcfcfc">
4235 <td style="font-weight: bold; font-size: 11px; padding: 5px;">AppendFileToBo dy </td>
4236 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4237 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4238 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
4239 <td style="font-size: 11px; padding: 5px;"> </td>
4240 </tr>
4241
4242 <tr bgcolor="#fcfcfc">
4243 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
4244 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4245 <td style="font-size: 11px; padding: 5px;">N/A </td>
4246 <td style="font-size: 11px; padding: 5px;">&lt;form&gt; </td>
4247 <td style="font-size: 11px; padding: 5px;">You can also read with FileReader and upload, but that's more like AppendDataToBody </td>
4248 </tr>
4249
4250 </table>
4251 <h3>PPB_URLResponseInfo</h3>
4252 <table>
4253 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
4254 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
4255 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
4256 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
4257 <td style="font-size: 11px; padding: 5px;">Web API </td>
4258 <td style="font-size: 11px; padding: 5px;">Limitations </td>
4259 </tr>
4260
4261 <tr bgcolor="#fcfcfc">
4262 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetProperty </ td>
4263 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4264 <td style="font-size: 11px; padding: 5px;">embind </td>
4265 <td style="font-size: 11px; padding: 5px;">XMLHttpRequest.getAllResponseHead ers + others </td>
4266 <td style="font-size: 11px; padding: 5px;"> </td>
4267 </tr>
4268
4269 <tr bgcolor="#fcfcfc">
4270 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
4271 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4272 <td style="font-size: 11px; padding: 5px;">embind </td>
4273 <td style="font-size: 11px; padding: 5px;">Fetch Response.* </td>
4274 <td style="font-size: 11px; padding: 5px;"> </td>
4275 </tr>
4276
4277 <tr bgcolor="#fcfcfc">
4278 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetBodyAsFileR ef </td>
4279 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4280 <td style="font-size: 11px; padding: 5px;">embind </td>
4281 <td style="font-size: 11px; padding: 5px;">Fetch Response (Body) .blob() </t d>
4282 <td style="font-size: 11px; padding: 5px;">Assumes storage layer optimizes t ransfer. </td>
4283 </tr>
4284
4285 </table>
4286 <h3>PPB_Var</h3>
4287 <table>
4288 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
4289 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
4290 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
4291 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
4292 <td style="font-size: 11px; padding: 5px;">Web API </td>
4293 <td style="font-size: 11px; padding: 5px;">Limitations </td>
4294 </tr>
4295
4296 <tr bgcolor="#fcfcfc">
4297 <td style="font-weight: bold; font-size: 11px; padding: 5px;">VarFromUtf8 </ td>
4298 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4299 <td style="font-size: 11px; padding: 5px;">embind </td>
4300 <td style="font-size: 11px; padding: 5px;">TextDecoder.decode </td>
4301 <td style="font-size: 11px; padding: 5px;"> </td>
4302 </tr>
4303
4304 <tr bgcolor="#fcfcfc">
4305 <td style="font-weight: bold; font-size: 11px; padding: 5px;">VarToUtf8 </td >
4306 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4307 <td style="font-size: 11px; padding: 5px;">embind </td>
4308 <td style="font-size: 11px; padding: 5px;">TextEncoder.encode </td>
4309 <td style="font-size: 11px; padding: 5px;"> </td>
4310 </tr>
4311
4312 <tr bgcolor="#fcfcfc">
4313 <td style="font-weight: bold; font-size: 11px; padding: 5px;">VarFromResourc e </td>
4314 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4315 <td style="font-size: 11px; padding: 5px;">N/A </td>
4316 <td style="font-size: 11px; padding: 5px;">N/A </td>
4317 <td style="font-size: 11px; padding: 5px;"> </td>
4318 </tr>
4319
4320 <tr bgcolor="#fcfcfc">
4321 <td style="font-weight: bold; font-size: 11px; padding: 5px;">VarToResource </td>
4322 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4323 <td style="font-size: 11px; padding: 5px;">N/A </td>
4324 <td style="font-size: 11px; padding: 5px;">N/A </td>
4325 <td style="font-size: 11px; padding: 5px;"> </td>
4326 </tr>
4327
4328 </table>
4329 <h3>PPB_VarArray</h3>
4330 <table>
4331 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
4332 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
4333 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
4334 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
4335 <td style="font-size: 11px; padding: 5px;">Web API </td>
4336 <td style="font-size: 11px; padding: 5px;">Limitations </td>
4337 </tr>
4338
4339 <tr bgcolor="#fcfcfc">
4340 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Get </td>
4341 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4342 <td style="font-size: 11px; padding: 5px;">embind </td>
4343 <td style="font-size: 11px; padding: 5px;">Array[i] </td>
4344 <td style="font-size: 11px; padding: 5px;"> </td>
4345 </tr>
4346
4347 <tr bgcolor="#fcfcfc">
4348 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Set </td>
4349 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4350 <td style="font-size: 11px; padding: 5px;">embind </td>
4351 <td style="font-size: 11px; padding: 5px;">Array[i] = x </td>
4352 <td style="font-size: 11px; padding: 5px;"> </td>
4353 </tr>
4354
4355 <tr bgcolor="#fcfcfc">
4356 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetLength </td >
4357 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4358 <td style="font-size: 11px; padding: 5px;">embind </td>
4359 <td style="font-size: 11px; padding: 5px;">Array.length </td>
4360 <td style="font-size: 11px; padding: 5px;"> </td>
4361 </tr>
4362
4363 <tr bgcolor="#fcfcfc">
4364 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetLength </td >
4365 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4366 <td style="font-size: 11px; padding: 5px;">embind </td>
4367 <td style="font-size: 11px; padding: 5px;">Array.length = n </td>
4368 <td style="font-size: 11px; padding: 5px;"> </td>
4369 </tr>
4370
4371 </table>
4372 <h3>PPB_VarArrayBuffer</h3>
4373 <table>
4374 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
4375 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
4376 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
4377 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
4378 <td style="font-size: 11px; padding: 5px;">Web API </td>
4379 <td style="font-size: 11px; padding: 5px;">Limitations </td>
4380 </tr>
4381
4382 <tr bgcolor="#fcfcfc">
4383 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
4384 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4385 <td style="font-size: 11px; padding: 5px;">embind </td>
4386 <td style="font-size: 11px; padding: 5px;">new ArrayBuffer(n) </td>
4387 <td style="font-size: 11px; padding: 5px;"> </td>
4388 </tr>
4389
4390 <tr bgcolor="#fcfcfc">
4391 <td style="font-weight: bold; font-size: 11px; padding: 5px;">ByteLength </t d>
4392 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4393 <td style="font-size: 11px; padding: 5px;">embind </td>
4394 <td style="font-size: 11px; padding: 5px;">ArrayBuffer.byteLength </td>
4395 <td style="font-size: 11px; padding: 5px;"> </td>
4396 </tr>
4397
4398 <tr bgcolor="#fcfcfc">
4399 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Map </td>
4400 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4401 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4402 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
4403 <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.
4404 Future multiple memories or memory mapping might improve this. </td>
4405 </tr>
4406
4407 <tr bgcolor="#fcfcfc">
4408 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Unmap </td>
4409 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4410 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4411 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
4412 <td style="font-size: 11px; padding: 5px;"> </td>
4413 </tr>
4414
4415 </table>
4416 <h3>PPB_VarDictionary</h3>
4417 <table>
4418 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
4419 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
4420 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
4421 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
4422 <td style="font-size: 11px; padding: 5px;">Web API </td>
4423 <td style="font-size: 11px; padding: 5px;">Limitations </td>
4424 </tr>
4425
4426 <tr bgcolor="#fcfcfc">
4427 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
4428 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4429 <td style="font-size: 11px; padding: 5px;">embind </td>
4430 <td style="font-size: 11px; padding: 5px;">{} </td>
4431 <td style="font-size: 11px; padding: 5px;"> </td>
4432 </tr>
4433
4434 <tr bgcolor="#fcfcfc">
4435 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Get </td>
4436 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4437 <td style="font-size: 11px; padding: 5px;">embind </td>
4438 <td style="font-size: 11px; padding: 5px;">&lt;Object&gt;[i] </td>
4439 <td style="font-size: 11px; padding: 5px;"> </td>
4440 </tr>
4441
4442 <tr bgcolor="#fcfcfc">
4443 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Set </td>
4444 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4445 <td style="font-size: 11px; padding: 5px;">embind </td>
4446 <td style="font-size: 11px; padding: 5px;">&lt;Object&gt;[i] = x </td>
4447 <td style="font-size: 11px; padding: 5px;"> </td>
4448 </tr>
4449
4450 <tr bgcolor="#fcfcfc">
4451 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Delete </td>
4452 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4453 <td style="font-size: 11px; padding: 5px;">embind </td>
4454 <td style="font-size: 11px; padding: 5px;">delete &lt;Object&gt;[i] </td>
4455 <td style="font-size: 11px; padding: 5px;"> </td>
4456 </tr>
4457
4458 <tr bgcolor="#fcfcfc">
4459 <td style="font-weight: bold; font-size: 11px; padding: 5px;">HasKey </td>
4460 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4461 <td style="font-size: 11px; padding: 5px;">embind </td>
4462 <td style="font-size: 11px; padding: 5px;">x in &lt;Object&gt; </td>
4463 <td style="font-size: 11px; padding: 5px;"> </td>
4464 </tr>
4465
4466 <tr bgcolor="#fcfcfc">
4467 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetKeys </td>
4468 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4469 <td style="font-size: 11px; padding: 5px;">embind </td>
4470 <td style="font-size: 11px; padding: 5px;">for (k in &lt;Object&gt;) {} </td >
4471 <td style="font-size: 11px; padding: 5px;">No literal equivalent, but it can be built. </td>
4472 </tr>
4473
4474 </table>
4475 <h3>PPB_VideoDecoder</h3>
4476 <table>
4477 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
4478 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
4479 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
4480 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
4481 <td style="font-size: 11px; padding: 5px;">Web API </td>
4482 <td style="font-size: 11px; padding: 5px;">Limitations </td>
4483 </tr>
4484
4485 <tr bgcolor="#fcfcfc">
4486 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
4487 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4488 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4489 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4490 <td style="font-size: 11px; padding: 5px;"> </td>
4491 </tr>
4492
4493 <tr bgcolor="#fcfcfc">
4494 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Initialize </t d>
4495 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4496 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4497 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4498 <td style="font-size: 11px; padding: 5px;"> </td>
4499 </tr>
4500
4501 <tr bgcolor="#fcfcfc">
4502 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Decode </td>
4503 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4504 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4505 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4506 <td style="font-size: 11px; padding: 5px;"> </td>
4507 </tr>
4508
4509 <tr bgcolor="#fcfcfc">
4510 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetPicture </t d>
4511 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4512 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4513 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4514 <td style="font-size: 11px; padding: 5px;"> </td>
4515 </tr>
4516
4517 <tr bgcolor="#fcfcfc">
4518 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RecyclePicture </td>
4519 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4520 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4521 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4522 <td style="font-size: 11px; padding: 5px;"> </td>
4523 </tr>
4524
4525 <tr bgcolor="#fcfcfc">
4526 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Flush </td>
4527 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4528 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4529 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4530 <td style="font-size: 11px; padding: 5px;"> </td>
4531 </tr>
4532
4533 <tr bgcolor="#fcfcfc">
4534 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Reset </td>
4535 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4536 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4537 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4538 <td style="font-size: 11px; padding: 5px;"> </td>
4539 </tr>
4540
4541 </table>
4542 <h3>PPB_VideoEncoder</h3>
4543 <table>
4544 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
4545 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
4546 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
4547 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
4548 <td style="font-size: 11px; padding: 5px;">Web API </td>
4549 <td style="font-size: 11px; padding: 5px;">Limitations </td>
4550 </tr>
4551
4552 <tr bgcolor="#fcfcfc">
4553 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
4554 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4555 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4556 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4557 <td style="font-size: 11px; padding: 5px;">Overlap with MediaRecorder API, b ut not exact. </td>
4558 </tr>
4559
4560 <tr bgcolor="#fcfcfc">
4561 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetSupportedPr ofiles </td>
4562 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4563 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4564 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4565 <td style="font-size: 11px; padding: 5px;"> </td>
4566 </tr>
4567
4568 <tr bgcolor="#fcfcfc">
4569 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Initialize </t d>
4570 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4571 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4572 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4573 <td style="font-size: 11px; padding: 5px;"> </td>
4574 </tr>
4575
4576 <tr bgcolor="#fcfcfc">
4577 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetFramesRequi red </td>
4578 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4579 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4580 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4581 <td style="font-size: 11px; padding: 5px;"> </td>
4582 </tr>
4583
4584 <tr bgcolor="#fcfcfc">
4585 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetFrameCodedS ize </td>
4586 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4587 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4588 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4589 <td style="font-size: 11px; padding: 5px;"> </td>
4590 </tr>
4591
4592 <tr bgcolor="#fcfcfc">
4593 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetVideoFrame </td>
4594 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4595 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4596 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4597 <td style="font-size: 11px; padding: 5px;"> </td>
4598 </tr>
4599
4600 <tr bgcolor="#fcfcfc">
4601 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Encode </td>
4602 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4603 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4604 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4605 <td style="font-size: 11px; padding: 5px;"> </td>
4606 </tr>
4607
4608 <tr bgcolor="#fcfcfc">
4609 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetBitstreamBu ffer </td>
4610 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4611 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4612 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4613 <td style="font-size: 11px; padding: 5px;"> </td>
4614 </tr>
4615
4616 <tr bgcolor="#fcfcfc">
4617 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RecycleBitstre amBuffer </td>
4618 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4619 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4620 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4621 <td style="font-size: 11px; padding: 5px;"> </td>
4622 </tr>
4623
4624 <tr bgcolor="#fcfcfc">
4625 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RequestEncodin gParametersChange </td>
4626 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4627 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4628 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4629 <td style="font-size: 11px; padding: 5px;"> </td>
4630 </tr>
4631
4632 <tr bgcolor="#fcfcfc">
4633 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Close </td>
4634 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4635 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4636 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4637 <td style="font-size: 11px; padding: 5px;"> </td>
4638 </tr>
4639
4640 </table>
4641 <h3>PPB_VideoFrame</h3>
4642 <table>
4643 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
4644 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
4645 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
4646 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
4647 <td style="font-size: 11px; padding: 5px;">Web API </td>
4648 <td style="font-size: 11px; padding: 5px;">Limitations </td>
4649 </tr>
4650
4651 <tr bgcolor="#fcfcfc">
4652 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetTimestamp < /td>
4653 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4654 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4655 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4656 <td style="font-size: 11px; padding: 5px;"> </td>
4657 </tr>
4658
4659 <tr bgcolor="#fcfcfc">
4660 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetTimestamp < /td>
4661 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4662 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4663 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4664 <td style="font-size: 11px; padding: 5px;"> </td>
4665 </tr>
4666
4667 <tr bgcolor="#fcfcfc">
4668 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetFormat </td >
4669 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4670 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4671 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4672 <td style="font-size: 11px; padding: 5px;"> </td>
4673 </tr>
4674
4675 <tr bgcolor="#fcfcfc">
4676 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetSize </td>
4677 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4678 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4679 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4680 <td style="font-size: 11px; padding: 5px;"> </td>
4681 </tr>
4682
4683 <tr bgcolor="#fcfcfc">
4684 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetDataBuffer </td>
4685 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4686 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4687 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4688 <td style="font-size: 11px; padding: 5px;"> </td>
4689 </tr>
4690
4691 <tr bgcolor="#fcfcfc">
4692 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetDataBufferS ize </td>
4693 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4694 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4695 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No equiva lent</td>
4696 <td style="font-size: 11px; padding: 5px;"> </td>
4697 </tr>
4698
4699 </table>
4700 <h3>PPB_View</h3>
4701 <table>
4702 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
4703 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
4704 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
4705 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
4706 <td style="font-size: 11px; padding: 5px;">Web API </td>
4707 <td style="font-size: 11px; padding: 5px;">Limitations </td>
4708 </tr>
4709
4710 <tr bgcolor="#fcfcfc">
4711 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetRect </td>
4712 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4713 <td style="font-size: 11px; padding: 5px;">embind </td>
4714 <td style="font-size: 11px; padding: 5px;">Element.getBoundingClientRect </t d>
4715 <td style="font-size: 11px; padding: 5px;"> </td>
4716 </tr>
4717
4718 <tr bgcolor="#fcfcfc">
4719 <td style="font-weight: bold; font-size: 11px; padding: 5px;">IsFullscreen < /td>
4720 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4721 <td style="font-size: 11px; padding: 5px;">embind </td>
4722 <td style="font-size: 11px; padding: 5px;">Document.fullScreenEnabled </td>
4723 <td style="font-size: 11px; padding: 5px;">Pertains to document instead of j ust single element. </td>
4724 </tr>
4725
4726 <tr bgcolor="#fcfcfc">
4727 <td style="font-weight: bold; font-size: 11px; padding: 5px;">IsVisible </td >
4728 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4729 <td style="font-size: 11px; padding: 5px;">embind </td>
4730 <td style="font-size: 11px; padding: 5px;">IntersectionObserver </td>
4731 <td style="font-size: 11px; padding: 5px;"> </td>
4732 </tr>
4733
4734 <tr bgcolor="#fcfcfc">
4735 <td style="font-weight: bold; font-size: 11px; padding: 5px;">IsPageVisible </td>
4736 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4737 <td style="font-size: 11px; padding: 5px;">embind </td>
4738 <td style="font-size: 11px; padding: 5px;">document.visibilityState </td>
4739 <td style="font-size: 11px; padding: 5px;"> </td>
4740 </tr>
4741
4742 <tr bgcolor="#fcfcfc">
4743 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetClipRect </ td>
4744 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4745 <td style="font-size: 11px; padding: 5px;">embind </td>
4746 <td style="font-size: 11px; padding: 5px;">IntersectionObserver </td>
4747 <td style="font-size: 11px; padding: 5px;"> </td>
4748 </tr>
4749
4750 <tr bgcolor="#fcfcfc">
4751 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetDeviceScale </td>
4752 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4753 <td style="font-size: 11px; padding: 5px;">embind </td>
4754 <td style="font-size: 11px; padding: 5px;">window.devicePixelRatio </td>
4755 <td style="font-size: 11px; padding: 5px;"> </td>
4756 </tr>
4757
4758 <tr bgcolor="#fcfcfc">
4759 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetCSSScale </ td>
4760 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4761 <td style="font-size: 11px; padding: 5px;">embind </td>
4762 <td style="font-size: 11px; padding: 5px;">&lt;Element&gt;.getBoundingClient Rect().width / &lt;Element&gt;.offsetWidth </td>
4763 <td style="font-size: 11px; padding: 5px;"> </td>
4764 </tr>
4765
4766 <tr bgcolor="#fcfcfc">
4767 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetScrollOffse t </td>
4768 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4769 <td style="font-size: 11px; padding: 5px;">embind </td>
4770 <td style="font-size: 11px; padding: 5px;">&lt;Element&gt;.scrollTop / &lt;E lement&gt;.scrollLeft </td>
4771 <td style="font-size: 11px; padding: 5px;"> </td>
4772 </tr>
4773
4774 </table>
4775 <h3>PPB_WebSocket</h3>
4776 <table>
4777 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
4778 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
4779 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
4780 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
4781 <td style="font-size: 11px; padding: 5px;">Web API </td>
4782 <td style="font-size: 11px; padding: 5px;">Limitations </td>
4783 </tr>
4784
4785 <tr bgcolor="#fcfcfc">
4786 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
4787 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4788 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4789 <td style="font-size: 11px; padding: 5px;">WebSocket.WebSocket </td>
4790 <td style="font-size: 11px; padding: 5px;"> </td>
4791 </tr>
4792
4793 <tr bgcolor="#fcfcfc">
4794 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Connect </td>
4795 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4796 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4797 <td style="font-size: 11px; padding: 5px;">WebSocket.WebSocket(url, ...)
4798 WebSocket 'open' Event </td>
4799 <td style="font-size: 11px; padding: 5px;"> </td>
4800 </tr>
4801
4802 <tr bgcolor="#fcfcfc">
4803 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Close </td>
4804 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4805 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4806 <td style="font-size: 11px; padding: 5px;">WebSocket.close </td>
4807 <td style="font-size: 11px; padding: 5px;"> </td>
4808 </tr>
4809
4810 <tr bgcolor="#fcfcfc">
4811 <td style="font-weight: bold; font-size: 11px; padding: 5px;">ReceiveMessage </td>
4812 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4813 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4814 <td style="font-size: 11px; padding: 5px;">WebSocket 'message' Event
4815 WebSocket 'error' Event
4816 WebSocket 'close' Event </td>
4817 <td style="font-size: 11px; padding: 5px;"> </td>
4818 </tr>
4819
4820 <tr bgcolor="#fcfcfc">
4821 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SendMessage </ td>
4822 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4823 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4824 <td style="font-size: 11px; padding: 5px;">WebSocket.send </td>
4825 <td style="font-size: 11px; padding: 5px;"> </td>
4826 </tr>
4827
4828 <tr bgcolor="#fcfcfc">
4829 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetBufferedAmo unt </td>
4830 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4831 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4832 <td style="font-size: 11px; padding: 5px;">WebSocket.bufferedAmount </td>
4833 <td style="font-size: 11px; padding: 5px;"> </td>
4834 </tr>
4835
4836 <tr bgcolor="#fcfcfc">
4837 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetCloseCode < /td>
4838 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4839 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4840 <td style="font-size: 11px; padding: 5px;">CloseEvent.code </td>
4841 <td style="font-size: 11px; padding: 5px;"> </td>
4842 </tr>
4843
4844 <tr bgcolor="#fcfcfc">
4845 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetCloseReason </td>
4846 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4847 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4848 <td style="font-size: 11px; padding: 5px;">CloseEvent.reason </td>
4849 <td style="font-size: 11px; padding: 5px;"> </td>
4850 </tr>
4851
4852 <tr bgcolor="#fcfcfc">
4853 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetCloseWasCle an </td>
4854 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4855 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4856 <td style="font-size: 11px; padding: 5px;">CloseEvent.wasClean </td>
4857 <td style="font-size: 11px; padding: 5px;"> </td>
4858 </tr>
4859
4860 <tr bgcolor="#fcfcfc">
4861 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetExtensions </td>
4862 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4863 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4864 <td style="font-size: 11px; padding: 5px;">WebSocket.extensions </td>
4865 <td style="font-size: 11px; padding: 5px;"> </td>
4866 </tr>
4867
4868 <tr bgcolor="#fcfcfc">
4869 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetProtocol </ td>
4870 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4871 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4872 <td style="font-size: 11px; padding: 5px;">WebSocket.protocol </td>
4873 <td style="font-size: 11px; padding: 5px;"> </td>
4874 </tr>
4875
4876 <tr bgcolor="#fcfcfc">
4877 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetReadyState </td>
4878 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4879 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4880 <td style="font-size: 11px; padding: 5px;">WebSocket.readyState </td>
4881 <td style="font-size: 11px; padding: 5px;"> </td>
4882 </tr>
4883
4884 <tr bgcolor="#fcfcfc">
4885 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetURL </td>
4886 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4887 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
4888 <td style="font-size: 11px; padding: 5px;">WebSocket.url </td>
4889 <td style="font-size: 11px; padding: 5px;"> </td>
4890 </tr>
4891
4892 </table>
4893 <h3>PPP_Graphics3D</h3>
4894 <table>
4895 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
4896 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
4897 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
4898 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
4899 <td style="font-size: 11px; padding: 5px;">Web API </td>
4900 <td style="font-size: 11px; padding: 5px;">Limitations </td>
4901 </tr>
4902
4903 <tr bgcolor="#fcfcfc">
4904 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Graphics3DCont extLost </td>
4905 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4906 <td style="font-size: 11px; padding: 5px;">SDL </td>
4907 <td style="font-size: 11px; padding: 5px;">Canvas 'webglcontextlost' Event < /td>
4908 <td style="font-size: 11px; padding: 5px;"> </td>
4909 </tr>
4910
4911 </table>
4912 <h3>PPP_InputEvent</h3>
4913 <table>
4914 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
4915 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
4916 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
4917 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
4918 <td style="font-size: 11px; padding: 5px;">Web API </td>
4919 <td style="font-size: 11px; padding: 5px;">Limitations </td>
4920 </tr>
4921
4922 <tr bgcolor="#fcfcfc">
4923 <td style="font-weight: bold; font-size: 11px; padding: 5px;">HandleInputEve nt </td>
4924 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4925 <td style="font-size: 11px; padding: 5px;">SDL </td>
4926 <td style="font-size: 11px; padding: 5px;">Element.addEventListener </td>
4927 <td style="font-size: 11px; padding: 5px;"> </td>
4928 </tr>
4929
4930 </table>
4931 <h3>PPP_Instance</h3>
4932 <table>
4933 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
4934 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
4935 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
4936 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
4937 <td style="font-size: 11px; padding: 5px;">Web API </td>
4938 <td style="font-size: 11px; padding: 5px;">Limitations </td>
4939 </tr>
4940
4941 <tr bgcolor="#fcfcfc">
4942 <td style="font-weight: bold; font-size: 11px; padding: 5px;">DidCreate </td >
4943 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4944 <td style="font-size: 11px; padding: 5px;">N/A </td>
4945 <td style="font-size: 11px; padding: 5px;">&lt;Element&gt;[key] </td>
4946 <td style="font-size: 11px; padding: 5px;">General DOM access lets you fish out tag attributes </td>
4947 </tr>
4948
4949 <tr bgcolor="#fcfcfc">
4950 <td style="font-weight: bold; font-size: 11px; padding: 5px;">DidDestroy </t d>
4951 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4952 <td style="font-size: 11px; padding: 5px;">N/A </td>
4953 <td style="font-size: 11px; padding: 5px;">N/A </td>
4954 <td style="font-size: 11px; padding: 5px;">Not triggered for NaCl </td>
4955 </tr>
4956
4957 <tr bgcolor="#fcfcfc">
4958 <td style="font-weight: bold; font-size: 11px; padding: 5px;">DidChangeView </td>
4959 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4960 <td style="font-size: 11px; padding: 5px;">N/A </td>
4961 <td style="font-size: 11px; padding: 5px;">Element 'resize' Event </td>
4962 <td style="font-size: 11px; padding: 5px;"> </td>
4963 </tr>
4964
4965 <tr bgcolor="#fcfcfc">
4966 <td style="font-weight: bold; font-size: 11px; padding: 5px;">DidChangeFocus </td>
4967 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4968 <td style="font-size: 11px; padding: 5px;">N/A </td>
4969 <td style="font-size: 11px; padding: 5px;">Element 'focus', 'focusin', 'focu sout' Events </td>
4970 <td style="font-size: 11px; padding: 5px;"> </td>
4971 </tr>
4972
4973 <tr bgcolor="#fcfcfc">
4974 <td style="font-weight: bold; font-size: 11px; padding: 5px;">HandleDocument Load </td>
4975 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4976 <td style="font-size: 11px; padding: 5px;">N/A </td>
4977 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No way to register as a mime type handler</td>
4978 <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>
4979 </tr>
4980
4981 </table>
4982 <h3>PPP_MessageHandler</h3>
4983 <table>
4984 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
4985 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
4986 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
4987 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
4988 <td style="font-size: 11px; padding: 5px;">Web API </td>
4989 <td style="font-size: 11px; padding: 5px;">Limitations </td>
4990 </tr>
4991
4992 <tr bgcolor="#fcfcfc">
4993 <td style="font-weight: bold; font-size: 11px; padding: 5px;">HandleMessage </td>
4994 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
4995 <td style="font-size: 11px; padding: 5px;">embind </td>
4996 <td style="font-size: 11px; padding: 5px;">MessagePort 'message' Event
4997 Window 'message' Event </td>
4998 <td style="font-size: 11px; padding: 5px;"> </td>
4999 </tr>
5000
5001 <tr bgcolor="#fcfcfc">
5002 <td style="font-weight: bold; font-size: 11px; padding: 5px;">HandleBlocking Message </td>
5003 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
5004 <td style="font-size: 11px; padding: 5px;">N/A </td>
5005 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
5006 <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>
5007 </tr>
5008
5009 </table>
5010 <h3>PPP_Messaging</h3>
5011 <table>
5012 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
5013 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
5014 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
5015 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
5016 <td style="font-size: 11px; padding: 5px;">Web API </td>
5017 <td style="font-size: 11px; padding: 5px;">Limitations </td>
5018 </tr>
5019
5020 <tr bgcolor="#fcfcfc">
5021 <td style="font-weight: bold; font-size: 11px; padding: 5px;">HandleMessage </td>
5022 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
5023 <td style="font-size: 11px; padding: 5px;">embind </td>
5024 <td style="font-size: 11px; padding: 5px;">MessagePort 'message' Event
5025 Window 'message' Event </td>
5026 <td style="font-size: 11px; padding: 5px;"> </td>
5027 </tr>
5028
5029 </table>
5030 <h3>PPP_MouseLock</h3>
5031 <table>
5032 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
5033 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
5034 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
5035 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
5036 <td style="font-size: 11px; padding: 5px;">Web API </td>
5037 <td style="font-size: 11px; padding: 5px;">Limitations </td>
5038 </tr>
5039
5040 <tr bgcolor="#fcfcfc">
5041 <td style="font-weight: bold; font-size: 11px; padding: 5px;">MouseLockLost </td>
5042 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> </td>
5043 <td style="font-size: 11px; padding: 5px;">SDL </td>
5044 <td style="font-size: 11px; padding: 5px;">Element 'pointerlockchange', 'poi nterlockerror' Events </td>
5045 <td style="font-size: 11px; padding: 5px;"> </td>
5046 </tr>
5047
5048 </table>
5049 <h2 id="ppapi-apps">PPAPI (Apps)</h2>
5050 <table>
5051 </table>
5052 <h3>PPB_HostResolver</h3>
5053 <table>
5054 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
5055 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
5056 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
5057 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
5058 <td style="font-size: 11px; padding: 5px;">Web API </td>
5059 <td style="font-size: 11px; padding: 5px;">Limitations </td>
5060 </tr>
5061
5062 <tr bgcolor="#fcfcfc">
5063 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
5064 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5065 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5066 <td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent</td>
5067 <td style="font-size: 11px; padding: 5px;"> </td>
5068 </tr>
5069
5070 <tr bgcolor="#fcfcfc">
5071 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Resolve </td>
5072 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5073 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5074 <td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent</td>
5075 <td style="font-size: 11px; padding: 5px;"> </td>
5076 </tr>
5077
5078 <tr bgcolor="#fcfcfc">
5079 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetCanonicalNa me </td>
5080 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5081 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5082 <td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent</td>
5083 <td style="font-size: 11px; padding: 5px;"> </td>
5084 </tr>
5085
5086 <tr bgcolor="#fcfcfc">
5087 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetNetAddressC ount </td>
5088 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5089 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5090 <td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent</td>
5091 <td style="font-size: 11px; padding: 5px;"> </td>
5092 </tr>
5093
5094 <tr bgcolor="#fcfcfc">
5095 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetNetAddress </td>
5096 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5097 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5098 <td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent</td>
5099 <td style="font-size: 11px; padding: 5px;"> </td>
5100 </tr>
5101
5102 </table>
5103 <h3>PPB_NetAddress</h3>
5104 <table>
5105 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
5106 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
5107 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
5108 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
5109 <td style="font-size: 11px; padding: 5px;">Web API </td>
5110 <td style="font-size: 11px; padding: 5px;">Limitations </td>
5111 </tr>
5112
5113 <tr bgcolor="#fcfcfc">
5114 <td style="font-weight: bold; font-size: 11px; padding: 5px;">CreateFromIPv4 Address </td>
5115 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5116 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5117 <td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent</td>
5118 <td style="font-size: 11px; padding: 5px;"> </td>
5119 </tr>
5120
5121 <tr bgcolor="#fcfcfc">
5122 <td style="font-weight: bold; font-size: 11px; padding: 5px;">CreateFromIPv6 Address </td>
5123 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5124 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5125 <td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent</td>
5126 <td style="font-size: 11px; padding: 5px;"> </td>
5127 </tr>
5128
5129 <tr bgcolor="#fcfcfc">
5130 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetFamily </td >
5131 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5132 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5133 <td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent</td>
5134 <td style="font-size: 11px; padding: 5px;"> </td>
5135 </tr>
5136
5137 <tr bgcolor="#fcfcfc">
5138 <td style="font-weight: bold; font-size: 11px; padding: 5px;">DescribeAsStri ng </td>
5139 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5140 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5141 <td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent</td>
5142 <td style="font-size: 11px; padding: 5px;"> </td>
5143 </tr>
5144
5145 <tr bgcolor="#fcfcfc">
5146 <td style="font-weight: bold; font-size: 11px; padding: 5px;">DescribeAsIPv4 Address </td>
5147 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5148 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5149 <td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent</td>
5150 <td style="font-size: 11px; padding: 5px;"> </td>
5151 </tr>
5152
5153 <tr bgcolor="#fcfcfc">
5154 <td style="font-weight: bold; font-size: 11px; padding: 5px;">DescribeAsIPv6 Address </td>
5155 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5156 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5157 <td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent</td>
5158 <td style="font-size: 11px; padding: 5px;"> </td>
5159 </tr>
5160
5161 </table>
5162 <h3>PPB_NetworkList</h3>
5163 <table>
5164 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
5165 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
5166 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
5167 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
5168 <td style="font-size: 11px; padding: 5px;">Web API </td>
5169 <td style="font-size: 11px; padding: 5px;">Limitations </td>
5170 </tr>
5171
5172 <tr bgcolor="#fcfcfc">
5173 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetCount </td>
5174 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5175 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5176 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
5177 <td style="font-size: 11px; padding: 5px;"> </td>
5178 </tr>
5179
5180 <tr bgcolor="#fcfcfc">
5181 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetName </td>
5182 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5183 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5184 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
5185 <td style="font-size: 11px; padding: 5px;"> </td>
5186 </tr>
5187
5188 <tr bgcolor="#fcfcfc">
5189 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetType </td>
5190 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5191 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5192 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
5193 <td style="font-size: 11px; padding: 5px;"> </td>
5194 </tr>
5195
5196 <tr bgcolor="#fcfcfc">
5197 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetState </td>
5198 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5199 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5200 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
5201 <td style="font-size: 11px; padding: 5px;"> </td>
5202 </tr>
5203
5204 <tr bgcolor="#fcfcfc">
5205 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetIpAddress < /td>
5206 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5207 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5208 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
5209 <td style="font-size: 11px; padding: 5px;"> </td>
5210 </tr>
5211
5212 <tr bgcolor="#fcfcfc">
5213 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetDisplayName </td>
5214 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5215 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5216 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
5217 <td style="font-size: 11px; padding: 5px;"> </td>
5218 </tr>
5219
5220 <tr bgcolor="#fcfcfc">
5221 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetMTU </td>
5222 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5223 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5224 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
5225 <td style="font-size: 11px; padding: 5px;"> </td>
5226 </tr>
5227
5228 </table>
5229 <h3>PPB_NetworkMonitor</h3>
5230 <table>
5231 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
5232 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
5233 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
5234 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
5235 <td style="font-size: 11px; padding: 5px;">Web API </td>
5236 <td style="font-size: 11px; padding: 5px;">Limitations </td>
5237 </tr>
5238
5239 <tr bgcolor="#fcfcfc">
5240 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
5241 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5242 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5243 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
5244 <td style="font-size: 11px; padding: 5px;"> </td>
5245 </tr>
5246
5247 <tr bgcolor="#fcfcfc">
5248 <td style="font-weight: bold; font-size: 11px; padding: 5px;">UpdateNetworkL ist </td>
5249 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5250 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5251 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
5252 <td style="font-size: 11px; padding: 5px;"> </td>
5253 </tr>
5254
5255 </table>
5256 <h3>PPB_NetworkProxy</h3>
5257 <table>
5258 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
5259 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
5260 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
5261 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
5262 <td style="font-size: 11px; padding: 5px;">Web API </td>
5263 <td style="font-size: 11px; padding: 5px;">Limitations </td>
5264 </tr>
5265
5266 <tr bgcolor="#fcfcfc">
5267 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetProxyForURL </td>
5268 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5269 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5270 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
5271 <td style="font-size: 11px; padding: 5px;"> </td>
5272 </tr>
5273
5274 </table>
5275 <h3>PPB_TCPSocket</h3>
5276 <table>
5277 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
5278 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
5279 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
5280 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
5281 <td style="font-size: 11px; padding: 5px;">Web API </td>
5282 <td style="font-size: 11px; padding: 5px;">Limitations </td>
5283 </tr>
5284
5285 <tr bgcolor="#fcfcfc">
5286 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
5287 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5288 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5289 <td style="font-size: 11px; padding: 5px;">chrome.sockets.tcp.create </td>
5290 <td style="font-size: 11px; padding: 5px;">WebSockets / WebRTC closest pract ical equivalent on open Web. </td>
5291 </tr>
5292
5293 <tr bgcolor="#fcfcfc">
5294 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
5295 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5296 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5297 <td style="font-size: 11px; padding: 5px;">chrome.sockets.tcpServer.create < /td>
5298 <td style="font-size: 11px; padding: 5px;"> </td>
5299 </tr>
5300
5301 <tr bgcolor="#fcfcfc">
5302 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Bind </td>
5303 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5304 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5305 <td style="font-size: 11px; padding: 5px;">chrome.sockets.tcpServer.create < /td>
5306 <td style="font-size: 11px; padding: 5px;"> </td>
5307 </tr>
5308
5309 <tr bgcolor="#fcfcfc">
5310 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Connect </td>
5311 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5312 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5313 <td style="font-size: 11px; padding: 5px;">chrome.sockets.tcp.connect </td>
5314 <td style="font-size: 11px; padding: 5px;"> </td>
5315 </tr>
5316
5317 <tr bgcolor="#fcfcfc">
5318 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetLocalAddres s </td>
5319 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5320 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5321 <td style="font-size: 11px; padding: 5px;">chrome.sockets.udp.SocketInfo </t d>
5322 <td style="font-size: 11px; padding: 5px;"> </td>
5323 </tr>
5324
5325 <tr bgcolor="#fcfcfc">
5326 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetRemoteAddre ss </td>
5327 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5328 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5329 <td style="font-size: 11px; padding: 5px;">chrome.sockets.udp.SocketInfo </t d>
5330 <td style="font-size: 11px; padding: 5px;"> </td>
5331 </tr>
5332
5333 <tr bgcolor="#fcfcfc">
5334 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Read </td>
5335 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5336 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5337 <td style="font-size: 11px; padding: 5px;">onReceive* Events </td>
5338 <td style="font-size: 11px; padding: 5px;"> </td>
5339 </tr>
5340
5341 <tr bgcolor="#fcfcfc">
5342 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Write </td>
5343 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5344 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5345 <td style="font-size: 11px; padding: 5px;">chrome.sockets.tcp.send </td>
5346 <td style="font-size: 11px; padding: 5px;"> </td>
5347 </tr>
5348
5349 <tr bgcolor="#fcfcfc">
5350 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Listen </td>
5351 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5352 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5353 <td style="font-size: 11px; padding: 5px;">chrome.sockets.tcpServer.listen < /td>
5354 <td style="font-size: 11px; padding: 5px;"> </td>
5355 </tr>
5356
5357 <tr bgcolor="#fcfcfc">
5358 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Accept </td>
5359 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5360 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5361 <td style="font-size: 11px; padding: 5px;">onAccept* Events </td>
5362 <td style="font-size: 11px; padding: 5px;"> </td>
5363 </tr>
5364
5365 <tr bgcolor="#fcfcfc">
5366 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Close </td>
5367 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5368 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5369 <td style="font-size: 11px; padding: 5px;">chrome.sockets.tcp.close </td>
5370 <td style="font-size: 11px; padding: 5px;"> </td>
5371 </tr>
5372
5373 <tr bgcolor="#fcfcfc">
5374 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
5375 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5376 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5377 <td style="font-size: 11px; padding: 5px;">chrome.sockets.tcpServer.close </ td>
5378 <td style="font-size: 11px; padding: 5px;"> </td>
5379 </tr>
5380
5381 <tr bgcolor="#fcfcfc">
5382 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetOption </td >
5383 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5384 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5385 <td style="font-size: 11px; padding: 5px;">chrome.sockets.tcp.update </td>
5386 <td style="font-size: 11px; padding: 5px;"> </td>
5387 </tr>
5388
5389 <tr bgcolor="#fcfcfc">
5390 <td style="font-weight: bold; font-size: 11px; padding: 5px;"> </td>
5391 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5392 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5393 <td style="font-size: 11px; padding: 5px;">chrome.sockets.tcpServer.update < /td>
5394 <td style="font-size: 11px; padding: 5px;"> </td>
5395 </tr>
5396
5397 </table>
5398 <h3>PPB_UDPSocket</h3>
5399 <table>
5400 <tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
5401 <td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method < /td>
5402 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> Assumes Threads </td>
5403 <td style="font-size: 11px; padding: 5px;">Emscripten </td>
5404 <td style="font-size: 11px; padding: 5px;">Web API </td>
5405 <td style="font-size: 11px; padding: 5px;">Limitations </td>
5406 </tr>
5407
5408 <tr bgcolor="#fcfcfc">
5409 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
5410 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5411 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5412 <td style="font-size: 11px; padding: 5px;">chrome.sockets.udp.create </td>
5413 <td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - WebRTC closest practical open Web equivalent</td>
5414 </tr>
5415
5416 <tr bgcolor="#fcfcfc">
5417 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Bind </td>
5418 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5419 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5420 <td style="font-size: 11px; padding: 5px;">chrome.sockets.udp.bind </td>
5421 <td style="font-size: 11px; padding: 5px;"> </td>
5422 </tr>
5423
5424 <tr bgcolor="#fcfcfc">
5425 <td style="font-weight: bold; font-size: 11px; padding: 5px;">GetBoundAddres s </td>
5426 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5427 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5428 <td style="font-size: 11px; padding: 5px;">chrome.sockets.udp.SocketInfo </t d>
5429 <td style="font-size: 11px; padding: 5px;"> </td>
5430 </tr>
5431
5432 <tr bgcolor="#fcfcfc">
5433 <td style="font-weight: bold; font-size: 11px; padding: 5px;">RecvFrom </td>
5434 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5435 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5436 <td style="font-size: 11px; padding: 5px;">onReceive* Events </td>
5437 <td style="font-size: 11px; padding: 5px;"> </td>
5438 </tr>
5439
5440 <tr bgcolor="#fcfcfc">
5441 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SendTo </td>
5442 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5443 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5444 <td style="font-size: 11px; padding: 5px;">chrome.sockets.udp.send </td>
5445 <td style="font-size: 11px; padding: 5px;"> </td>
5446 </tr>
5447
5448 <tr bgcolor="#fcfcfc">
5449 <td style="font-weight: bold; font-size: 11px; padding: 5px;">Close </td>
5450 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5451 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5452 <td style="font-size: 11px; padding: 5px;">chrome.sockets.udp.close </td>
5453 <td style="font-size: 11px; padding: 5px;"> </td>
5454 </tr>
5455
5456 <tr bgcolor="#fcfcfc">
5457 <td style="font-weight: bold; font-size: 11px; padding: 5px;">SetOption </td >
5458 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5459 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5460 <td style="font-size: 11px; padding: 5px;">chrome.sockets.udp.update </td>
5461 <td style="font-size: 11px; padding: 5px;"> </td>
5462 </tr>
5463
5464 <tr bgcolor="#fcfcfc">
5465 <td style="font-weight: bold; font-size: 11px; padding: 5px;">JoinGroup </td >
5466 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5467 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5468 <td style="font-size: 11px; padding: 5px;">chrome.sockets.udp.joinGroup </td >
5469 <td style="font-size: 11px; padding: 5px;"> </td>
5470 </tr>
5471
5472 <tr bgcolor="#fcfcfc">
5473 <td style="font-weight: bold; font-size: 11px; padding: 5px;">LeaveGroup </t d>
5474 <td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;"> x </td>
5475 <td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
5476 <td style="font-size: 11px; padding: 5px;">chrome.sockets.udp.leaveGroup </t d>
5477 <td style="font-size: 11px; padding: 5px;"> </td>
5478 </tr>
5479
5480 </table>
5481 </section>
5482
5483 {{/partials.standard_nacl_article}}
OLDNEW
« no previous file with comments | « native_client_sdk/doc_generated/io2014.html ('k') | native_client_sdk/doc_generated/nacl-and-pnacl.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698