<table>
</table>
<h3>PPB_HostResolver</h3>
<table>
<tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
<td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method </td>
<td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;">Assumes Threads </td>
<td style="font-size: 11px; padding: 5px;">Emscripten </td>
<td style="font-size: 11px; padding: 5px;">Web API </td>
<td style="font-size: 11px; padding: 5px;">Limitations </td>
</tr>
<tr bgcolor="#fcfcfc">
<td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
<td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;">x </td>
<td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
<td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent</td>
<td style="font-size: 11px; padding: 5px;"> </td>
</tr>
<tr bgcolor="#fcfcfc">
<td style="font-weight: bold; font-size: 11px; padding: 5px;">Resolve </td>
<td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;">x </td>
<td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
<td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent</td>
<td style="font-size: 11px; padding: 5px;"> </td>
</tr>
<tr bgcolor="#fcfcfc">
<td style="font-weight: bold; font-size: 11px; padding: 5px;">GetCanonicalName </td>
<td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;">x </td>
<td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
<td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent</td>
<td style="font-size: 11px; padding: 5px;"> </td>
</tr>
<tr bgcolor="#fcfcfc">
<td style="font-weight: bold; font-size: 11px; padding: 5px;">GetNetAddressCount </td>
<td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;">x </td>
<td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
<td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent</td>
<td style="font-size: 11px; padding: 5px;"> </td>
</tr>
<tr bgcolor="#fcfcfc">
<td style="font-weight: bold; font-size: 11px; padding: 5px;">GetNetAddress </td>
<td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;">x </td>
<td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
<td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent</td>
<td style="font-size: 11px; padding: 5px;"> </td>
</tr>
</table>
<h3>PPB_NetAddress</h3>
<table>
<tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
<td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method </td>
<td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;">Assumes Threads </td>
<td style="font-size: 11px; padding: 5px;">Emscripten </td>
<td style="font-size: 11px; padding: 5px;">Web API </td>
<td style="font-size: 11px; padding: 5px;">Limitations </td>
</tr>
<tr bgcolor="#fcfcfc">
<td style="font-weight: bold; font-size: 11px; padding: 5px;">CreateFromIPv4Address </td>
<td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;">x </td>
<td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
<td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent</td>
<td style="font-size: 11px; padding: 5px;"> </td>
</tr>
<tr bgcolor="#fcfcfc">
<td style="font-weight: bold; font-size: 11px; padding: 5px;">CreateFromIPv6Address </td>
<td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;">x </td>
<td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
<td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent</td>
<td style="font-size: 11px; padding: 5px;"> </td>
</tr>
<tr bgcolor="#fcfcfc">
<td style="font-weight: bold; font-size: 11px; padding: 5px;">GetFamily </td>
<td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;">x </td>
<td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
<td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent</td>
<td style="font-size: 11px; padding: 5px;"> </td>
</tr>
<tr bgcolor="#fcfcfc">
<td style="font-weight: bold; font-size: 11px; padding: 5px;">DescribeAsString </td>
<td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;">x </td>
<td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
<td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent</td>
<td style="font-size: 11px; padding: 5px;"> </td>
</tr>
<tr bgcolor="#fcfcfc">
<td style="font-weight: bold; font-size: 11px; padding: 5px;">DescribeAsIPv4Address </td>
<td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;">x </td>
<td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
<td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent</td>
<td style="font-size: 11px; padding: 5px;"> </td>
</tr>
<tr bgcolor="#fcfcfc">
<td style="font-weight: bold; font-size: 11px; padding: 5px;">DescribeAsIPv6Address </td>
<td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;">x </td>
<td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
<td bgcolor="#ffeecc" style="font-size: 11px; padding: 5px;">GAP (partial) - No direct equivalent</td>
<td style="font-size: 11px; padding: 5px;"> </td>
</tr>
</table>
<h3>PPB_NetworkList</h3>
<table>
<tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
<td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method </td>
<td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;">Assumes Threads </td>
<td style="font-size: 11px; padding: 5px;">Emscripten </td>
<td style="font-size: 11px; padding: 5px;">Web API </td>
<td style="font-size: 11px; padding: 5px;">Limitations </td>
</tr>
<tr bgcolor="#fcfcfc">
<td style="font-weight: bold; font-size: 11px; padding: 5px;">GetCount </td>
<td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;">x </td>
<td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
<td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
<td style="font-size: 11px; padding: 5px;"> </td>
</tr>
<tr bgcolor="#fcfcfc">
<td style="font-weight: bold; font-size: 11px; padding: 5px;">GetName </td>
<td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;">x </td>
<td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
<td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
<td style="font-size: 11px; padding: 5px;"> </td>
</tr>
<tr bgcolor="#fcfcfc">
<td style="font-weight: bold; font-size: 11px; padding: 5px;">GetType </td>
<td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;">x </td>
<td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
<td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
<td style="font-size: 11px; padding: 5px;"> </td>
</tr>
<tr bgcolor="#fcfcfc">
<td style="font-weight: bold; font-size: 11px; padding: 5px;">GetState </td>
<td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;">x </td>
<td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
<td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
<td style="font-size: 11px; padding: 5px;"> </td>
</tr>
<tr bgcolor="#fcfcfc">
<td style="font-weight: bold; font-size: 11px; padding: 5px;">GetIpAddress </td>
<td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;">x </td>
<td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
<td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
<td style="font-size: 11px; padding: 5px;"> </td>
</tr>
<tr bgcolor="#fcfcfc">
<td style="font-weight: bold; font-size: 11px; padding: 5px;">GetDisplayName </td>
<td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;">x </td>
<td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
<td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
<td style="font-size: 11px; padding: 5px;"> </td>
</tr>
<tr bgcolor="#fcfcfc">
<td style="font-weight: bold; font-size: 11px; padding: 5px;">GetMTU </td>
<td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;">x </td>
<td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
<td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
<td style="font-size: 11px; padding: 5px;"> </td>
</tr>
</table>
<h3>PPB_NetworkMonitor</h3>
<table>
<tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
<td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method </td>
<td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;">Assumes Threads </td>
<td style="font-size: 11px; padding: 5px;">Emscripten </td>
<td style="font-size: 11px; padding: 5px;">Web API </td>
<td style="font-size: 11px; padding: 5px;">Limitations </td>
</tr>
<tr bgcolor="#fcfcfc">
<td style="font-weight: bold; font-size: 11px; padding: 5px;">Create </td>
<td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;">x </td>
<td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
<td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
<td style="font-size: 11px; padding: 5px;"> </td>
</tr>
<tr bgcolor="#fcfcfc">
<td style="font-weight: bold; font-size: 11px; padding: 5px;">UpdateNetworkList </td>
<td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;">x </td>
<td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
<td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
<td style="font-size: 11px; padding: 5px;"> </td>
</tr>
</table>
<h3>PPB_NetworkProxy</h3>
<table>
<tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
<td style="font-weight: bold; font-size: 11px; padding: 5px;">PPAPI Method </td>
<td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;">Assumes Threads </td>
<td style="font-size: 11px; padding: 5px;">Emscripten </td>
<td style="font-size: 11px; padding: 5px;">Web API </td>
<td style="font-size: 11px; padding: 5px;">Limitations </td>
</tr>
<tr bgcolor="#fcfcfc">
<td style="font-weight: bold; font-size: 11px; padding: 5px;">GetProxyForURL </td>
<td style="width: 50px; text-align: center; font-size: 11px; padding: 5px;">x </td>
<td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP</td>
<td bgcolor="#ffcccc" style="font-size: 11px; padding: 5px;">GAP - No direct equivalent</td>
<td style="font-size: 11px; padding: 5px;"> </td>
</tr>
</table>
<h3>PPB_TCPSocket and PPB_UDPSocket</h3>
There is not a direct 1:1 mapping for migration. Instead, we have outlined some
user scenarios below and what the recommended migration path is.
<table>
<tr bgcolor="#77ccff" style="color:white; font-weight: bold;">
<td style="font-weight: bold; font-size: 11px; padding: 5px;">Use Case</td>
<td style="font-size: 11px; padding: 5px;">Recommendations</td>
</tr>
<tr bgcolor="#fcfcfc">
<td style="font-weight: bold; font-size: 11px; padding: 5px;">Screen sharing</td>
<td style="font-size: 11px; padding: 5px;">
<a href="https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia">
getDisplayMedia</a> and
<a href="https://webrtc.org/">WebRTC</a> (
<a href="https://webrtc.github.io/samples/src/content/getusermedia/getdisplaymedia/">
demo</a>)
</td>
</tr>
<tr bgcolor="#fcfcfc">
<td style="font-weight: bold; font-size: 11px; padding: 5px;">Loading from a
local server to minimize bandwidth usage</td>
<td style="font-size: 11px; padding: 5px;">XHR, Fetch, Streams, Service Worker, Cache APIs</td>
</tr>
<tr bgcolor="#fcfcfc">
<td style="font-weight: bold; font-size: 11px; padding: 5px;">Loading from a
local instance of a web app / Connecting to a local instance of a web app</td>
<td style="font-size: 11px; padding: 5px;"><a href="https://webrtc.org/">WebRTC</a></td>
</tr>
<tr bgcolor="#fcfcfc">
<td style="font-weight: bold; font-size: 11px; padding: 5px;">Chat</td>
<td style="font-size: 11px; padding: 5px;">
<a href="https://developer.mozilla.org/ja/docs/Web/API/WebSockets_API">WebSocket</a>*
</td>
</tr>
<tr bgcolor="#fcfcfc">
<td style="font-weight: bold; font-size: 11px; padding: 5px;">Realtime
audio/video communication</td>
<td style="font-size: 11px; padding: 5px;"><a href="https://webrtc.org/">WebRTC</a></td>
</tr>
<tr bgcolor="#fcfcfc">
<td style="font-weight: bold; font-size: 11px; padding: 5px;">Collaboration</td>
<td style="font-size: 11px; padding: 5px;">
<a href="https://developer.mozilla.org/ja/docs/Web/API/WebSockets_API">WebSocket</a>*
</td>
</tr>
<tr bgcolor="#fcfcfc">
<td style="font-weight: bold; font-size: 11px; padding: 5px;">Realtime
multiplayer games</td>
<td style="font-size: 11px; padding: 5px;">
<a href="https://github.com/WICG/web-transport/blob/master/README.md">WebTransport</a>**
unless P2P in which case <a href="https://webrtc.org/">WebRTC</a> (or
WebTransport over RTCIceTransport)
</td>
</tr>
<tr bgcolor="#fcfcfc">
<td style="font-weight: bold; font-size: 11px; padding: 5px;">Realtime
interactive streaming</td>
<td style="font-size: 11px; padding: 5px;">
<a href="https://github.com/WICG/web-transport/blob/master/README.md">WebTransport</a>**
</td>
</tr>
<tr bgcolor="#fcfcfc">
<td style="font-weight: bold; font-size: 11px; padding: 5px;">Communicating
with legacy server</td>
<td style="font-size: 11px; padding: 5px;">
Proxy server or middleware to do protocol conversion. Feedback to
<a href="http://bit.ly/network-api-gaps">bit.ly/network-api-gaps</a>
</td>
</tr>
</table>
<i>*: Or WebTransport in the future</i><br>
<i>**: See <a href="https://chromestatus.com/features#webtransport">chromestatus</a> for
availability</i>