Title: [282824] trunk/LayoutTests/imported/w3c
Revision
282824
Author
[email protected]
Date
2021-09-21 09:47:36 -0700 (Tue, 21 Sep 2021)

Log Message

RTCPeerConnection perfect negotiation tests are flaky
https://bugs.webkit.org/show_bug.cgi?id=230344

Reviewed by Alex Christensen.

Helper function checks that adding candidates only fails for candidates related to ignored descriptions.
But the flag that sets whther descriptions are ignored is set synchronously while it should be set once the description is applied.
Otherwise, errors related to the candidates that are in the operation queue related to the previously ignored description will not be ignored.

* web-platform-tests/webrtc/RTCPeerConnection-perfect-negotiation-helper.js:
(try.async try):
(string_appeared_here.peer):
* web-platform-tests/webrtc/RTCPeerConnection-perfect-negotiation.https-expected.txt:

Modified Paths

Diff

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (282823 => 282824)


--- trunk/LayoutTests/imported/w3c/ChangeLog	2021-09-21 16:39:54 UTC (rev 282823)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2021-09-21 16:47:36 UTC (rev 282824)
@@ -1,3 +1,19 @@
+2021-09-21  Youenn Fablet  <[email protected]>
+
+        RTCPeerConnection perfect negotiation tests are flaky
+        https://bugs.webkit.org/show_bug.cgi?id=230344
+
+        Reviewed by Alex Christensen.
+
+        Helper function checks that adding candidates only fails for candidates related to ignored descriptions.
+        But the flag that sets whther descriptions are ignored is set synchronously while it should be set once the description is applied.
+        Otherwise, errors related to the candidates that are in the operation queue related to the previously ignored description will not be ignored.
+
+        * web-platform-tests/webrtc/RTCPeerConnection-perfect-negotiation-helper.js:
+        (try.async try):
+        (string_appeared_here.peer):
+        * web-platform-tests/webrtc/RTCPeerConnection-perfect-negotiation.https-expected.txt:
+
 2021-09-21  Chris Dumez  <[email protected]>
 
         Resync web-platform-tests/tools from upstream

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-perfect-negotiation-helper.js (282823 => 282824)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-perfect-negotiation-helper.js	2021-09-21 16:39:54 UTC (rev 282823)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-perfect-negotiation-helper.js	2021-09-21 16:47:36 UTC (rev 282824)
@@ -36,7 +36,7 @@
   try {
     pc.addEventListener("icecandidate", ({candidate}) => send(other,
                                                               {candidate}));
-    let makingOffer = false, ignoreOffer = false;
+    let makingOffer = false, ignoreIceCandidateFailures = false;
     let srdAnswerPending = false;
     pc.addEventListener("negotiationneeded", async () => {
       try {
@@ -63,14 +63,16 @@
           let isStable =
               pc.signalingState == "stable" ||
               (pc.signalingState == "have-local-offer" && srdAnswerPending);
-          ignoreOffer = description.type == "offer" && !polite &&
+          const ignoreOffer = description.type == "offer" && !polite &&
                          (makingOffer || !isStable);
           if (ignoreOffer) {
+            ignoreIceCandidateFailures = true;
             return;
           }
           if (description.type == "answer")
             srdAnswerPending = true;
           await pc.setRemoteDescription(description);
+          ignoreIceCandidateFailures = false;
           srdAnswerPending = false;
           if (description.type == "offer") {
             assert_equals(pc.signalingState, "have-remote-offer", "Remote offer");
@@ -88,7 +90,7 @@
           try {
             await pc.addIceCandidate(candidate);
           } catch (e) {
-            if (!ignoreOffer) throw e;
+            if (!ignoreIceCandidateFailures) throw e;
           }
         } else if (run) {
           send(window.parent, {[run.id]: await commands[run.cmd]() || 0});
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to