PeerConnection is now DeprecatedPeerConnection. Demo update required!

395 views
Skip to first unread message

Serge Lachapelle

unread,
Mar 14, 2012, 10:57:58 AM3/14/12
to discuss...@googlegroups.com
( cross posted from the WebRTC Google+ page )

In today's forecast, we expect to see sunny skies and a chance of breakage. If you have been writing WebRTC demos with Chrome, this will affect your demo!

The Chrome WebRTC (that's us!) are very active at both the W3C and IETF to get the APIs in tip top shape. Our goal is to have our implementation follow the API quickly.

The result? Chrome Canary and Chrome Dev will go through major changes, starting today, that will break your existing work. Fortunately, fixing is easy! Please read the following carefully:

1. The current PeerConnection API is now renamed DeprecatedPeerConnection. We are keeping the old PeerConnection around to give you time to move to it. A simple rename will keep your demos working.

DeprecatedPeerConnection will be deleted a short while after JSEP is fully intergrated into the WebRTC standard and PeerConnection00 is renamed PeerConnection.

2. We are working on the new PeerConnection API. It's not done yet. JSEP is a new signalling API that is described in this internet draft:http://tools.ietf.org/html/draft-ietf-rtcweb-jsep-00 The WebRTC W3C workgroup is working on integrating this draft into the W3C Specification.

The new JSEP PeerConnection will be called PeerConnection00 We will keep a version number until the W3C workgroup finalizes the standard. By using version numbers, we can hopefully avoid "hard" breakage like the one we are causing now. 

If you adopt this new version, you will be closer to the final spec, but you will have to expect breakage if we update from 00 to 01 and so on.
You will notice that JSEP allows lower level operations, but is more complex. To offset this complexity, +Harald Tveit Alvestrand created a Javascript library that abstracts JSEP and mimics the "old" way of doing things. You can find it here:

http://code.google.com/p/webrtc-samples/source/browse/#svn%2Ftrunk%2Froap-jsep Disclaimer: It's a first version but should be useful to keep your old demos running once we switch fully to JSEP.

Here is the timeline we expect to follow:

• Today's PeerConnection is being renamed DeprecatedPeerConnection (NOW for Canary, soon for Chrome Dev.)

• A new experimental PeerConnection will be introduced as PeerConnection00 (gradually during the next few weeks)

• As the JSEP draft iterates PeerConnection00 might become PeerConnection01. The old PeerConnection00 won't stay around.

• When the standard is fully updated with the final JSEP API PeerConnection00 (or PeerConnection01 etc) will be updated accordingly and renamed PeerConnection.

• A few weeks later (tops) DeprecatedPC will be deleted.

The demos, issues and comments you have sent us are extremely motivating. We hope you will take the time to replace the string "PeerConnection" with "DeprecatedPeerConnection" in your code. Iterating an early standard is a challenge and we apologize for the inconvenience. I promise to update this page frequently and answer questions about this quickly.

The WebKit bug entries that can be used to track the chaos are:

Overall move to JSEP https://bugs.webkit.org/show_bug.cgi?id=80589
Rename to DeprecatedPeerConnectionhttps://bugs.webkit.org/show_bug.cgi?id=80692

Thanks!

David Narvaez

unread,
Mar 14, 2012, 4:40:15 PM3/14/12
to discuss...@googlegroups.com
I'm not sure I understand what does this mean: Does this mean latest version of Chromium cannot communicate with previous versions that implemented WebRTC? Does this also mean latest Chromium versions will be using PeerConnectionXX as the different PeerConnectionXXs get updated?

David E. Narvaez

Niklas Enbom

unread,
Mar 15, 2012, 4:22:16 AM3/15/12
to discuss...@googlegroups.com
I'm not sure I understand what does this mean: Does this mean latest version of Chromium cannot communicate with previous versions that implemented WebRTC? 

-- Not exactly, since you can make them interoperate with some JS handling. For the current change we have only changed the naming and not the functionality at all. But, to make your life easy I would recommend to develop using the latest version of Chrome only.

Does this also mean latest Chromium versions will be using PeerConnectionXX as the different PeerConnectionXXs get updated? 
-- Yes, and older versions will be removed

Niklas

Luc Tribolet

unread,
Mar 15, 2012, 4:58:28 AM3/15/12
to discuss...@googlegroups.com
From now we just have to replace "webkitPeerConnection()" by "webkitPeerConnectionXX()" in Chrome ?

How will we aware of changes ( from webkitPeerConnection00 to webkitPeerConnection01 and etc) ? Will you make announcements every time it is changed ?

Regards,

Luc

Harald Alvestrand

unread,
Mar 15, 2012, 5:05:36 AM3/15/12
to discuss...@googlegroups.com
On Thu, Mar 15, 2012 at 09:58, Luc Tribolet <luc.tr...@gmail.com> wrote:
> From now we just have to replace "webkitPeerConnection()" by
> "webkitPeerConnectionXX()" in Chrome ?

No, to webkitDeprecatedPeerConnection(). The webkitPeerConnection00
will not be as compatible, will require you to write your code
differently, and has not yet been landed in Chromium.

> How will we aware of changes ( from webkitPeerConnection00 to
> webkitPeerConnection01 and etc) ? Will you make announcements every time it
> is changed ?

Yes, we will announce changes every time we do something that we're
sure will break your demos.

Richard Speyer

unread,
Mar 16, 2012, 4:39:35 PM3/16/12
to discuss...@googlegroups.com
I have been pulling down the WebRTC/libjingle code using the guidelines on this page: http://www.webrtc.org/reference/getting-started.

However, when I try to sync up, I do not see any of the changes described above even though when I browse the libjingle tree I can see all of the new JSEP-related files. Is this a versioning issue? Is there a workaround?

Thanks,
Richard

Justin Uberti

unread,
Mar 16, 2012, 8:07:50 PM3/16/12
to discuss...@googlegroups.com
These changes are for the JS interface within Chrome, not the C++ interface in the native code.

Richard Speyer

unread,
Mar 19, 2012, 12:46:57 PM3/19/12
to discuss...@googlegroups.com
Gothca, thanks. So the native code will continue to use ROAP for the foreseeable future?

Tommy Widenflycht (ᛏᚮᛘᛘᚤ)

unread,
Mar 19, 2012, 2:16:43 PM3/19/12
to discuss...@googlegroups.com
The native code will support ROAP at least until the JavaScript DeprecatedPeerConnection is killed.

/Tommy
--
Tommy Widenflycht, Senior Software Engineer
Google Sweden AB, Kungsbron 2, SE-11122 Stockholm, Sweden
Org. nr. 556656-6880
And yes, I have to include the above in every outgoing email according to EU law.

Antony Meyn

unread,
May 7, 2012, 11:50:41 PM5/7/12
to discuss...@googlegroups.com
Looks like JavaScript DeprecatedPeerConnection is killed. Is there an article on "What would need to change to keep our code demos working"??

Thanks,
Antony Meyn 

Tommy Widenflycht (ᛏᚮᛘᛘᚤ)

unread,
May 8, 2012, 7:42:19 AM5/8/12
to discuss...@googlegroups.com
It's not killed but we have introduced another flag to chrome canary --enable-peer-connection in addition to --enable-media-stream, see email to this list from Serge.
Reply all
Reply to author
Forward
0 new messages