RESOLVED FIXED Bug 170192
[WebRTC] After r214441 addIceCandidate not longer accepts an RTCIceCandidateInit dictionary
https://bugs.webkit.org/show_bug.cgi?id=170192
Summary [WebRTC] After r214441 addIceCandidate not longer accepts an RTCIceCandidateI...
Carlos Alberto Lopez Perez
Reported 2017-03-28 12:56:54 PDT
I have detected this layout test failure on the WebKitGTK+ (OpenWebRTC) port caused by r214441 <https://trac.webkit.org/r214441> $ diff -U100 -u LayoutTests/platform/gtk/fast/mediastream/RTCPeerConnection-addIceCandidate-expected.txt layout-test-results/fast/mediastream/RTCPeerConnection-addIceCandidate-actual.txt --- LayoutTests/platform/gtk/fast/mediastream/RTCPeerConnection-addIceCandidate-expected.txt 2017-03-16 17:49:20.780620966 +0100 +++ layout-test-results/fast/mediastream/RTCPeerConnection-addIceCandidate-actual.txt 2017-03-28 21:30:45.797590203 +0200 @@ -1,34 +1,34 @@ Test behavior of RTCPeerConnection.addIceCandidate On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". *** A remote description is needed before a candidate can be added PASS pc.remoteDescription is null PASS promise pc.addIceCandidate(new RTCIceCandidate({candidate: 'foo', sdpMid: 0})) rejected with InvalidStateError (DOM Exception 11): No remote description set PASS Remote description set *** Define sdpMid, badSdpMid, sdpMLineIndex and badSdpMLineIndex for testing PASS sdpMLineIndex is not badSdpMLineIndex PASS sdpMid is not null PASS sdpMid is not badSdpMid PASS promise pc.addIceCandidate(new RTCIceCandidate({candidate: validCandidate, sdpMid: badSdpMid})) rejected with OperationError (DOM Exception 34): sdpMid did not match any media description PASS promise pc.addIceCandidate(new RTCIceCandidate({candidate: validCandidate, sdpMLineIndex: badSdpMLineIndex})) rejected with OperationError (DOM Exception 34): sdpMLineIndex is out of range *** A (bad) sdpMid takes precedesce over valid sdpMLineIndex PASS promise pc.addIceCandidate(new RTCIceCandidate({candidate: validCandidate, sdpMid: badSdpMid, sdpMLineIndex: sdpMLineIndex})) rejected with OperationError (DOM Exception 34): sdpMid did not match any media description *** Test bad candidate content with valid sdpMid PASS promise pc.addIceCandidate(new RTCIceCandidate({candidate: 'bad content', sdpMid: sdpMid})) rejected with OperationError (DOM Exception 34): Invalid candidate content *** Test bad candidate content with valid sdpMLineIndex PASS promise pc.addIceCandidate(new RTCIceCandidate({candidate: 'bad content', sdpMLineIndex: sdpMLineIndex})) rejected with OperationError (DOM Exception 34): Invalid candidate content *** Test some OK input -PASS promise pc.addIceCandidate({candidate: validCandidate, sdpMid: sdpMid}) fulfilled with undefined +FAIL promise pc.addIceCandidate({candidate: validCandidate, sdpMid: sdpMid}) rejected unexpectedly. PASS promise pc.addIceCandidate(new RTCIceCandidate({candidate: validCandidate, sdpMLineIndex: sdpMLineIndex})) fulfilled with undefined *** A valid sdpMid takes precedesce over a bad sdpMLineIndex PASS promise pc.addIceCandidate(new RTCIceCandidate({candidate: validCandidate, sdpMid: sdpMid, sdpMLineIndex: badSdpMLineIndex})) fulfilled with undefined PASS End of test promise chain PASS successfullyParsed is true TEST COMPLETE Note that the GTK port has a different expectation for this test than the mac port. The test tries to call RTCPeerConnection.addIceCandidate() passing a Dictionary with some of the values allowed as per the definition of RTCIceCandidateInit here: https://www.w3.org/TR/webrtc/#dom-rtcicecandidateinit From LayoutTests/fast/mediastream/RTCPeerConnection-addIceCandidate.html: [...] .then(function () { debug("<br>*** Test some OK input"); // Testing passing a RTCIceCandidateInit return promiseShouldResolve("pc.addIceCandidate({candidate: validCandidate, sdpMid: sdpMid})"); [...] My understanding is that the promise should work. And it was working before r214441. I double-checked it: reverting r214441 locally makes the test pass back again.
Attachments
Patch (12.01 KB, patch)
2017-03-28 16:00 PDT, youenn fablet
no flags
Patch for landing (11.86 KB, patch)
2017-03-28 20:27 PDT, youenn fablet
no flags
youenn fablet
Comment 1 2017-03-28 13:11:27 PDT
> *** Test some OK input > -PASS promise pc.addIceCandidate({candidate: validCandidate, sdpMid: > sdpMid}) fulfilled with undefined > +FAIL promise pc.addIceCandidate({candidate: validCandidate, sdpMid: > sdpMid}) rejected unexpectedly. This should be working. I'll check that.
youenn fablet
Comment 2 2017-03-28 16:00:28 PDT
Jon Lee
Comment 3 2017-03-28 17:25:10 PDT
Comment on attachment 305658 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=305658&action=review > Source/WebCore/ChangeLog:3 > + [WebRTC] After r214441 addIceCandidate not longer accepts an RTCIceCandidateInit dictionary Typo: no* longer
youenn fablet
Comment 4 2017-03-28 20:27:57 PDT
Created attachment 305701 [details] Patch for landing
WebKit Commit Bot
Comment 5 2017-03-28 21:09:18 PDT
Comment on attachment 305701 [details] Patch for landing Clearing flags on attachment: 305701 Committed r214527: <http://trac.webkit.org/changeset/214527>
WebKit Commit Bot
Comment 6 2017-03-28 21:09:22 PDT
All reviewed patches have been landed. Closing bug.
Carlos Alberto Lopez Perez
Comment 7 2017-03-29 08:33:25 PDT
Note You need to log in before you can comment on or make changes to this bug.