<html>
<head>
<base href="https://bugs.webkit.org/" />
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW - WebRTC: Update RTCPeerConnection API and introduce PeerConnectionBackend"
href="https://bugs.webkit.org/show_bug.cgi?id=150166">150166</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>WebRTC: Update RTCPeerConnection API and introduce PeerConnectionBackend
</td>
</tr>
<tr>
<th>Classification</th>
<td>Unclassified
</td>
</tr>
<tr>
<th>Product</th>
<td>WebKit
</td>
</tr>
<tr>
<th>Version</th>
<td>WebKit Nightly Build
</td>
</tr>
<tr>
<th>Hardware</th>
<td>Unspecified
</td>
</tr>
<tr>
<th>OS</th>
<td>Unspecified
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>Normal
</td>
</tr>
<tr>
<th>Priority</th>
<td>P2
</td>
</tr>
<tr>
<th>Component</th>
<td>WebCore Misc.
</td>
</tr>
<tr>
<th>Assignee</th>
<td>webkit-unassigned@lists.webkit.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>adam.bergkvist@ericsson.com
</td>
</tr></table>
<p>
<div>
<pre>This change introduces PeerConnectionBackend which is a WebCore interface that allows RTCPeerConnection to have platform abstractions at different levels. For example, the MediaEndpoint interface [1] is a lower level WebRTC backend abstraction where a big part of the WebRTC specification is implemented in WebCore to be reusable. RTCPeerConnectionHandler (in the repo today) is on the other hand a higher level WebRTC backend abstraction where the calls are mostly forwarded directly to the backend. The PeerConnectionBackend interface facilitates both approaches.
RTCPeerConnection
| (has)
|
PeerConnectionBackend
| |
| | (realizes)
| MediaEndpointPeerConnection
| | (has)
| |
| MediaEndpoint (platform interface)
|
| (realizes)
RTCPeerHandlerPeerConnection
| (has)
|
RCPeerConnectionHandler (existing platform interface)
Notable changes:
* Overloaded methods on RTCPeerConnection (Promise + legacy callback signatures) are implemented with JSBuiltins.
* "Queued operations" ([1] Section 4.3.1) is implemented in JS bindings with Promises. Issue: Non-queued operations are still exposed to the script (see FIXME in RTCPeerConnection.idl).
* New RTCPeerConnection features
- add/removeTrack()
- pending/currentLocal/RemoteDescription attributes
- RTCRtpSender/Receiver
* Information carrying objects like RTCSessionDescription and RTCCandidate don't encapsulate a "mirrored" platform object anymore.
* Remove callback implementations (not used with JS bindings)
[1] <a href="http://webkit.org/b/150165">http://webkit.org/b/150165</a>
[2] <a href="https://w3c.github.io/webrtc-pc/archives/20151006/webrtc.html">https://w3c.github.io/webrtc-pc/archives/20151006/webrtc.html</a></pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>