From 5982561328c910793b0f4cfe4ef1b408595c7ecf Mon Sep 17 00:00:00 2001 From: Chromium WPT Sync Date: Wed, 15 Mar 2023 10:50:31 +0000 Subject: [PATCH] Import wpt@b3af2a5eb2ec42a95e66b1cbb2ca4113e609a24c Using wpt-import in Chromium cce42700ae5997d3fe398624a16868b84d8e2d52. Note to sheriffs: This CL imports external tests and adds expectations for those tests; if this CL is large and causes a few new failures, please fix the failures by adding new lines to TestExpectations rather than reverting. See: https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md Directory owners for changes in this CL: hbos@chromium.org, hta@chromium.org, guidou@chromium.org, phancke@microsoft.com: external/wpt/webrtc hbos@chromium.org, hta@chromium.org, phancke@microsoft.com: external/wpt/webrtc-stats NOAUTOREVERT=true R=rubber-stamper@appspot.gserviceaccount.com No-Export: true Cq-Include-Trybots: luci.chromium.try:linux-wpt-identity-fyi-rel,linux-wpt-input-fyi-rel,linux-blink-rel Change-Id: I211540b4c4635a005c41925ef315b8e74d53eb2b Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4336091 Bot-Commit: Rubber Stamper Commit-Queue: Rubber Stamper Auto-Submit: WPT Autoroller Cr-Commit-Position: refs/heads/main@{#1117445} --- .../external/WPT_BASE_MANIFEST_8.json | 93 +++++++--- .../mix-blend-mode-rotated-clip.html.ini | 3 + .../element-replacement-gradient-ref.html | 11 ++ .../element-replacement-gradient.html | 15 ++ .../text-transform-capitalize-016.html.ini | 3 + ...t-text-border-top-left-radius-001.html.ini | 3 + ...tarea-border-top-right-radius-001.html.ini | 3 + ...ls-of-orthogonal-flows-percentage.html.ini | 3 + .../backdrop-filter-edge-clipping.html.ini | 3 + .../outbound-rtp.https-expected.txt | 4 + .../wpt/webrtc-stats/outbound-rtp.https.html | 7 +- .../webrtc-stats/outbound-rtp.https.html.ini | 3 + .../wpt/webrtc-stats/rtp-stats-creation.html | 5 +- .../webrtc/RTCDataChannel-send-expected.txt | 2 - .../wpt/webrtc/RTCDataChannel-send.html | 18 -- .../RTCPeerConnection-getStats.https.html | 58 +++--- ...RTCPeerConnection-onnegotiationneeded.html | 166 ++++++++++++++++++ .../webrtc/RTCRtpSender-setStreams.https.html | 1 - .../wpt/webrtc/protocol/bundle.https.html | 48 +++-- .../wpt/webrtc/third_party/sdp/sdp.js | 2 +- .../root-element-transition.html.ini | 4 +- 21 files changed, 357 insertions(+), 98 deletions(-) create mode 100644 third_party/blink/web_tests/external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-rotated-clip.html.ini create mode 100644 third_party/blink/web_tests/external/wpt/css/css-content/element-replacement-gradient-ref.html create mode 100644 third_party/blink/web_tests/external/wpt/css/css-content/element-replacement-gradient.html create mode 100644 third_party/blink/web_tests/external/wpt/css/css-text/text-transform/text-transform-capitalize-016.html.ini create mode 100644 third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-left-radius-001.html.ini create mode 100644 third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-right-radius-001.html.ini create mode 100644 third_party/blink/web_tests/external/wpt/css/css-writing-modes/two-levels-of-orthogonal-flows-percentage.html.ini create mode 100644 third_party/blink/web_tests/external/wpt/css/filter-effects/backdrop-filter-edge-clipping.html.ini create mode 100644 third_party/blink/web_tests/external/wpt/webrtc-stats/outbound-rtp.https-expected.txt create mode 100644 third_party/blink/web_tests/external/wpt/webrtc-stats/outbound-rtp.https.html.ini diff --git a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json index 32241e52c4a5e6..d114eb23697afa 100644 --- a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json +++ b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json @@ -104531,6 +104531,19 @@ {} ] ], + "element-replacement-gradient.html": [ + "bb1010b07533ebab2332b784b40b8622578c28bf", + [ + null, + [ + [ + "/css/css-content/element-replacement-gradient-ref.html", + "==" + ] + ], + {} + ] + ], "element-replacement-image-alt.html": [ "89cd63e5c4e626ad4974fd088580132ba46fe534", [ @@ -265746,6 +265759,16 @@ } }, "support": { + ".cache": { + "gitignore2.json": [ + "670d4f5470e0bac8b1b4efd832e365b802599189", + [] + ], + "mtime.json": [ + "a9cef24a12539339c7a7e2bcbecdbb42f4a55e21", + [] + ] + }, ".gitignore": [ "d93e645d547894b50149d3726de2654957b6e06f", [] @@ -280721,6 +280744,10 @@ "87eb5cbd4c689dd9e47bb0f622ab1d03d0a615bd", [] ], + "mix-blend-mode-rotated-clip.html.ini": [ + "20dd3122036ad2713a870b8c2059e49cf706aa69", + [] + ], "mix-blend-mode-stacking-context-001.html.ini": [ "55cb6ecc51bc3dffdeb7ffcd5815f44750783ca6", [] @@ -286550,6 +286577,10 @@ "ef8a6f3953c239733026c92541789ca5b942178b", [] ], + "element-replacement-gradient-ref.html": [ + "ecbc1947e45d0bc693fced9744e287898944274e", + [] + ], "element-replacement-image-no-src-ref.html": [ "b9ba2e92d711bdc26544c967445ddb95a71adb7d", [] @@ -315809,6 +315840,10 @@ "4080d27f0bc429516e18336bf4fff03742a3a083", [] ], + "text-transform-capitalize-016.html.ini": [ + "38beba6e5cb6fa31f957f18a03e4d18288c7ed19", + [] + ], "text-transform-capitalize-018.html.ini": [ "be8ba325fbe07e9c6a2af6f40cdeca78f4c9c841", [] @@ -321811,6 +321846,10 @@ "ee737becadbdfae290cdb1d571146cff26e9cce7", [] ], + "kind-of-widget-fallback-input-text-border-top-left-radius-001.html.ini": [ + "9916c48e0e4a60a7ff447d366fc874dc8d470308", + [] + ], "kind-of-widget-fallback-meter-background-attachment-001.html.ini": [ "5c85d4c8e2f214d8e5287e8ac98f6b1d3a9a274c", [] @@ -322019,6 +322058,10 @@ "7a5a285f8b66992ee7db59c4ddbaacb8a70e685d", [] ], + "kind-of-widget-fallback-textarea-border-top-right-radius-001.html.ini": [ + "6ba97de97f9d8f738d8bc4bbbfa0958005aa9a11", + [] + ], "kind-of-widget-fallback-textarea-border-top-width-001.html.ini": [ "f7e8bfa755ee6b0da9a7d366848455598f3852dd", [] @@ -327866,6 +327909,10 @@ ] } }, + "two-levels-of-orthogonal-flows-percentage.html.ini": [ + "bed34e42194ac4fd91cd405451ebaa736a73e50d", + [] + ], "vertical-alignment-002-ref.xht": [ "d665f7078f23561661b08a80f98dc3cd4e85819b", [] @@ -328916,6 +328963,10 @@ "c7127e471f6eed804646a1dbdbc6f15eabd6382b", [] ], + "backdrop-filter-edge-clipping.html.ini": [ + "041191cb376989aa15f54acb61db4afb61dc0826", + [] + ], "backdrop-filter-edge-pixels-ref.html": [ "36c509ff95d9b667018d070f4c1c7d334437ce37", [] @@ -386799,18 +386850,10 @@ "0bdd77500603cd5554127480ea6a0dfe451e8f2b", [] ], - "leaky_relu.https.any-expected.txt": [ - "36352d033e0baf74beba7ad1d25ff5fa265c7513", - [] - ], "leaky_relu.https.any.js.ini": [ "7b3310be72b46a3b99c5fea423dd8cbeda2cdfcd", [] ], - "leaky_relu.https.any.worker-expected.txt": [ - "37dc29052efcb699fb7b975647d7dbb563ea56fb", - [] - ], "matmul.https.any-expected.txt": [ "d6271b0ce53393981b49d9e7ea211131b67a0705", [] @@ -387170,7 +387213,7 @@ [] ], "RTCDataChannel-send-expected.txt": [ - "d4cfbf43f69b0bc5325b61fcb5c44ce8268f3bd6", + "463ae9b4dc1288fb4b2e183add73c50d99965b1a", [] ], "RTCDataChannel-send.html.ini": [ @@ -387610,7 +387653,7 @@ [] ], "sdp.js": [ - "d2a28706115bc5d3519f2cb0717967783ce52fab", + "a7538a671e7c351328afb30bd621bd2dd17ba29a", [] ] } @@ -387927,6 +387970,14 @@ "c25f4bff828af91f32b6455a7fbd3cae6d6aa0fb", [] ], + "outbound-rtp.https-expected.txt": [ + "2cfca80df588d89aa1b069a2095e115ee7af7fed", + [] + ], + "outbound-rtp.https.html.ini": [ + "ea5af53f5d509f8ce5355f628b67b7fbabf5facb", + [] + ], "rtp-stats-creation-expected.txt": [ "cc8d41073b431d03a42263e91c64e9c448afaa65", [] @@ -418001,7 +418052,7 @@ ] ], "compute_pressure_cross_origin_focus_control.tentative.https.window.js": [ - "982e4bba0e6cb70d5eef7361a0110ab4b07be20e", + "f88c9fdf64e3afdae60b06fd658256841e9a5283", [ "compute-pressure/compute_pressure_cross_origin_focus_control.tentative.https.window.html", { @@ -418119,7 +418170,7 @@ ] ], "compute_pressure_privacy_test.tentative.https.window.js": [ - "ceea886323cdfcb37f3deda425d90ef358a28c59", + "d33f6ef09ad1681a2803fc0fda8315dcd80e39f9", [ "compute-pressure/compute_pressure_privacy_test.tentative.https.window.html", { @@ -625657,7 +625708,7 @@ ] ], "RTCDataChannel-send.html": [ - "d75245c3475c56cc98365876a3bdc4a666fb6308", + "70cdf8657fd4c5637210234131a71cf60930ff82", [ null, { @@ -625862,7 +625913,7 @@ ] ], "RTCPeerConnection-getStats.https.html": [ - "96e763985c059679b1e97b9cfab4399632c9b00b", + "4889bcf4dd011bb9feb3c84c6dec5fe6f0a086d1", [ null, { @@ -625935,7 +625986,7 @@ ] ], "RTCPeerConnection-onnegotiationneeded.html": [ - "a87551a58c7dd5687e3c1eee488c92fb85b1de05", + "6ede5ccebf1189ccba49b4e19c795370a2db3ac0", [ null, {} @@ -626306,7 +626357,7 @@ ] ], "RTCRtpSender-setStreams.https.html": [ - "45b47d06a6c9c2956f93ae09379f68ecfa565591", + "03ae863d0f3d361f0518d1052f1a4886e3161fb9", [ null, {} @@ -626505,7 +626556,7 @@ ] ], "bundle.https.html": [ - "569f1fdadfc8036d13040684f6a5cafb8c64d671", + "a9381e1e2ab1642ef6897d6d7fe40acdd1fc828b", [ null, { @@ -627236,14 +627287,16 @@ ] ], "outbound-rtp.https.html": [ - "b7f4b06411671fa11e19d7dd297a2ae2a1c30ba1", + "ff87d54256026b3b6fc6da2aa9f03a579730b330", [ null, - {} + { + "timeout": "long" + } ] ], "rtp-stats-creation.html": [ - "df672a7f0d99d6bddf19a857d1a1aeba17de2646", + "7a6d9df456c5b26869e2d53b7ea4e5739d33b373", [ null, {} diff --git a/third_party/blink/web_tests/external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-rotated-clip.html.ini b/third_party/blink/web_tests/external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-rotated-clip.html.ini new file mode 100644 index 00000000000000..20dd3122036ad2 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/compositing/mix-blend-mode/mix-blend-mode-rotated-clip.html.ini @@ -0,0 +1,3 @@ +[mix-blend-mode-rotated-clip.html] + expected: + if (product == "content_shell") and (os == "mac"): FAIL diff --git a/third_party/blink/web_tests/external/wpt/css/css-content/element-replacement-gradient-ref.html b/third_party/blink/web_tests/external/wpt/css/css-content/element-replacement-gradient-ref.html new file mode 100644 index 00000000000000..ecbc1947e45d0b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-content/element-replacement-gradient-ref.html @@ -0,0 +1,11 @@ + + +CSS Test Reference + +
diff --git a/third_party/blink/web_tests/external/wpt/css/css-content/element-replacement-gradient.html b/third_party/blink/web_tests/external/wpt/css/css-content/element-replacement-gradient.html new file mode 100644 index 00000000000000..bb1010b07533eb --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-content/element-replacement-gradient.html @@ -0,0 +1,15 @@ + + +content: gradient + + + + + +
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/text-transform-capitalize-016.html.ini b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/text-transform-capitalize-016.html.ini new file mode 100644 index 00000000000000..38beba6e5cb6fa --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/text-transform/text-transform-capitalize-016.html.ini @@ -0,0 +1,3 @@ +[text-transform-capitalize-016.html] + expected: + if (product == "content_shell") and (os == "linux"): FAIL diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-left-radius-001.html.ini b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-left-radius-001.html.ini new file mode 100644 index 00000000000000..9916c48e0e4a60 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-left-radius-001.html.ini @@ -0,0 +1,3 @@ +[kind-of-widget-fallback-input-text-border-top-left-radius-001.html] + expected: + if (product == "content_shell") and (os == "mac"): FAIL diff --git a/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-right-radius-001.html.ini b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-right-radius-001.html.ini new file mode 100644 index 00000000000000..6ba97de97f9d8f --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-right-radius-001.html.ini @@ -0,0 +1,3 @@ +[kind-of-widget-fallback-textarea-border-top-right-radius-001.html] + expected: + if product == "chrome": FAIL diff --git a/third_party/blink/web_tests/external/wpt/css/css-writing-modes/two-levels-of-orthogonal-flows-percentage.html.ini b/third_party/blink/web_tests/external/wpt/css/css-writing-modes/two-levels-of-orthogonal-flows-percentage.html.ini new file mode 100644 index 00000000000000..bed34e42194ac4 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-writing-modes/two-levels-of-orthogonal-flows-percentage.html.ini @@ -0,0 +1,3 @@ +[two-levels-of-orthogonal-flows-percentage.html] + expected: + if (product == "content_shell") and (os == "linux"): FAIL diff --git a/third_party/blink/web_tests/external/wpt/css/filter-effects/backdrop-filter-edge-clipping.html.ini b/third_party/blink/web_tests/external/wpt/css/filter-effects/backdrop-filter-edge-clipping.html.ini new file mode 100644 index 00000000000000..041191cb376989 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/filter-effects/backdrop-filter-edge-clipping.html.ini @@ -0,0 +1,3 @@ +[backdrop-filter-edge-clipping.html] + expected: + if (product == "content_shell") and (os == "mac"): FAIL diff --git a/third_party/blink/web_tests/external/wpt/webrtc-stats/outbound-rtp.https-expected.txt b/third_party/blink/web_tests/external/wpt/webrtc-stats/outbound-rtp.https-expected.txt new file mode 100644 index 00000000000000..2cfca80df588d8 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/webrtc-stats/outbound-rtp.https-expected.txt @@ -0,0 +1,4 @@ +This is a testharness.js-based test. +FAIL setting an encoding to false is reflected in outbound-rtp stats assert_true: expected true got undefined +Harness: the test ran to completion. + diff --git a/third_party/blink/web_tests/external/wpt/webrtc-stats/outbound-rtp.https.html b/third_party/blink/web_tests/external/wpt/webrtc-stats/outbound-rtp.https.html index b7f4b06411671f..ff87d54256026b 100644 --- a/third_party/blink/web_tests/external/wpt/webrtc-stats/outbound-rtp.https.html +++ b/third_party/blink/web_tests/external/wpt/webrtc-stats/outbound-rtp.https.html @@ -1,5 +1,6 @@ + RTCPeerConnection getStats test related to outbound-rtp stats @@ -23,10 +24,10 @@ const stream = await getNoiseStream({audio: true, video: true}); stream.getTracks().forEach(t => pc1.addTrack(t, stream)); - exchangeOfferAnswer(pc1, pc2); exchangeIceCandidates(pc1, pc2); - await listenToConnected(pc1); - + exchangeOfferAnswer(pc1, pc2); + const {track} = await new Promise(r => pc2.ontrack = r); + await new Promise(r => track.onunmute = r); let outboundStats = extractOutboundRtpStats(await pc1.getStats()); assert_equals(outboundStats.length, 2); assert_true(outboundStats[0].active); diff --git a/third_party/blink/web_tests/external/wpt/webrtc-stats/outbound-rtp.https.html.ini b/third_party/blink/web_tests/external/wpt/webrtc-stats/outbound-rtp.https.html.ini new file mode 100644 index 00000000000000..ea5af53f5d509f --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/webrtc-stats/outbound-rtp.https.html.ini @@ -0,0 +1,3 @@ +[outbound-rtp.https.html] + [setting an encoding to false is reflected in outbound-rtp stats] + expected: FAIL diff --git a/third_party/blink/web_tests/external/wpt/webrtc-stats/rtp-stats-creation.html b/third_party/blink/web_tests/external/wpt/webrtc-stats/rtp-stats-creation.html index df672a7f0d99d6..7a6d9df456c5b2 100644 --- a/third_party/blink/web_tests/external/wpt/webrtc-stats/rtp-stats-creation.html +++ b/third_party/blink/web_tests/external/wpt/webrtc-stats/rtp-stats-creation.html @@ -38,7 +38,10 @@ localPc.addTrack(...await createTrackAndStreamWithCleanup(test, "audio")); localPc.addTrack(...await createTrackAndStreamWithCleanup(test, "video")); exchangeIceCandidates(localPc, remotePc); - await exchangeOfferAnswer(localPc, remotePc); + await Promise.all([ + exchangeOfferAnswer(localPc, remotePc), + new Promise(r => remotePc.ontrack = e => e.track.onunmute = r) + ]); const start = performance.now(); while (true) { const report = await localPc.getStats(); diff --git a/third_party/blink/web_tests/external/wpt/webrtc/RTCDataChannel-send-expected.txt b/third_party/blink/web_tests/external/wpt/webrtc/RTCDataChannel-send-expected.txt index d4cfbf43f69b0b..463ae9b4dc1288 100644 --- a/third_party/blink/web_tests/external/wpt/webrtc/RTCDataChannel-send-expected.txt +++ b/third_party/blink/web_tests/external/wpt/webrtc/RTCDataChannel-send-expected.txt @@ -11,7 +11,6 @@ FAIL Datachannel should be able to send Blob message and receive as ArrayBuffer FAIL Datachannel should be able to send ArrayBuffer message and receive as Blob promise_test: Unhandled rejection with value: object "NotSupportedError: Failed to set the 'binaryType' property on 'RTCDataChannel': Blob support not implemented yet" FAIL Datachannel binaryType should receive message as Blob by default assert_equals: Expect initial binaryType value to be blob expected "blob" but got "arraybuffer" FAIL Datachannel sending multiple messages with different types should succeed and be received assert_unreached: Unexpected promise rejection: NotSupportedError: Failed to execute 'send' on 'RTCDataChannel': Blob support not implemented yet Reached unreachable code -FAIL Datachannel send() up to max size should succeed, above max size should fail assert_throws_js: function "() => channel1.send(message)" did not throw PASS Negotiated datachannel should be able to send simple string and receive as string PASS Negotiated datachannel should be able to send unicode string and receive as unicode string PASS Negotiated datachannel should ignore binaryType and always receive string message as string @@ -23,6 +22,5 @@ FAIL Negotiated datachannel should be able to send Blob message and receive as A FAIL Negotiated datachannel should be able to send ArrayBuffer message and receive as Blob promise_test: Unhandled rejection with value: object "NotSupportedError: Failed to set the 'binaryType' property on 'RTCDataChannel': Blob support not implemented yet" FAIL Negotiated datachannel binaryType should receive message as Blob by default assert_equals: Expect initial binaryType value to be blob expected "blob" but got "arraybuffer" FAIL Negotiated datachannel sending multiple messages with different types should succeed and be received assert_unreached: Unexpected promise rejection: NotSupportedError: Failed to execute 'send' on 'RTCDataChannel': Blob support not implemented yet Reached unreachable code -FAIL Negotiated datachannel send() up to max size should succeed, above max size should fail assert_throws_js: function "() => channel1.send(message)" did not throw Harness: the test ran to completion. diff --git a/third_party/blink/web_tests/external/wpt/webrtc/RTCDataChannel-send.html b/third_party/blink/web_tests/external/wpt/webrtc/RTCDataChannel-send.html index d75245c3475c56..70cdf8657fd4c5 100644 --- a/third_party/blink/web_tests/external/wpt/webrtc/RTCDataChannel-send.html +++ b/third_party/blink/web_tests/external/wpt/webrtc/RTCDataChannel-send.html @@ -332,23 +332,5 @@ channel.send(helloString); }, 'Calling send() when data channel is in closing state should succeed'); */ - - promise_test(async t => { - let pc1 = new RTCPeerConnection(); - t.add_cleanup(() => pc1.close()); - let [channel1, channel2] = await createDataChannelPair(t, options, pc1); - let message = 'hello888'; // 8 bytes - while (message.length <= pc1.sctp.maxMessageSize) { - channel1.send(message); - let received_message = await awaitMessage(channel2); - assert_equals(received_message.length, message.length, "Size mismatch"); - // Double size - message = message + message; - } - // "send" method step 4: - // If the byte size of "data" exceeds the value of maxMessageSize, throw - // a TypeError. - assert_throws_js(TypeError, () => channel1.send(message)); - }, `${mode} send() up to max size should succeed, above max size should fail`); } diff --git a/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-getStats.https.html b/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-getStats.https.html index 96e763985c0596..4889bcf4dd011b 100644 --- a/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-getStats.https.html +++ b/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-getStats.https.html @@ -122,11 +122,13 @@ promise_test(async t => { const pc = createPeerConnectionWithCleanup(t); const pc2 = createPeerConnectionWithCleanup(t); - const [track, mediaStream] = await getTrackFromUserMedia('audio'); - pc.addTrack(track, mediaStream); + const [sendtrack, mediaStream] = await getTrackFromUserMedia('audio'); + pc.addTrack(sendtrack, mediaStream); exchangeIceCandidates(pc, pc2); - await exchangeOfferAnswer(pc, pc2); - await listenToConnected(pc); + await Promise.all([ + exchangeOfferAnswer(pc, pc2), + new Promise(r => pc2.ontrack = e => e.track.onunmute = r) + ]); const statsReport = await pc.getStats(); getRequiredStats(statsReport, 'peer-connection'); getRequiredStats(statsReport, 'outbound-rtp'); @@ -135,11 +137,13 @@ promise_test(async t => { const pc = createPeerConnectionWithCleanup(t); const pc2 = createPeerConnectionWithCleanup(t); - const [track, mediaStream] = await getTrackFromUserMedia('audio'); - pc.addTrack(track); + const [sendtrack, mediaStream] = await getTrackFromUserMedia('audio'); + pc.addTrack(sendtrack); exchangeIceCandidates(pc, pc2); - await exchangeOfferAnswer(pc, pc2); - await listenToConnected(pc); + await Promise.all([ + exchangeOfferAnswer(pc, pc2), + new Promise(r => pc2.ontrack = e => e.track.onunmute = r) + ]); const statsReport = await pc.getStats(); getRequiredStats(statsReport, 'peer-connection'); getRequiredStats(statsReport, 'outbound-rtp'); @@ -148,11 +152,13 @@ promise_test(async t => { const pc = createPeerConnectionWithCleanup(t); const pc2 = createPeerConnectionWithCleanup(t); - const [track, mediaStream] = await getTrackFromUserMedia('audio'); - pc.addTrack(track, mediaStream); + const [sendtrack, mediaStream] = await getTrackFromUserMedia('audio'); + pc.addTrack(sendtrack, mediaStream); exchangeIceCandidates(pc, pc2); - await exchangeOfferAnswer(pc, pc2); - await listenToConnected(pc); + await Promise.all([ + exchangeOfferAnswer(pc, pc2), + new Promise(r => pc2.ontrack = e => e.track.onunmute = r) + ]); const statsReport = await pc.getStats(); assert_stats_report_has_stats(statsReport, ['outbound-rtp']); }, 'getStats() audio outbound-rtp contains all mandatory stats'); @@ -160,11 +166,13 @@ promise_test(async t => { const pc = createPeerConnectionWithCleanup(t); const pc2 = createPeerConnectionWithCleanup(t); - const [track, mediaStream] = await getTrackFromUserMedia('video'); - pc.addTrack(track, mediaStream); + const [sendtrack, mediaStream] = await getTrackFromUserMedia('video'); + pc.addTrack(sendtrack, mediaStream); exchangeIceCandidates(pc, pc2); - await exchangeOfferAnswer(pc, pc2); - await listenToConnected(pc); + await Promise.all([ + exchangeOfferAnswer(pc, pc2), + new Promise(r => pc2.ontrack = e => e.track.onunmute = r) + ]); const statsReport = await pc.getStats(); assert_stats_report_has_stats(statsReport, ['outbound-rtp']); }, 'getStats() video outbound-rtp contains all mandatory stats'); @@ -177,8 +185,10 @@ const [videoTrack, videoStream] = await getTrackFromUserMedia('video'); pc.addTrack(videoTrack, videoStream); exchangeIceCandidates(pc, pc2); - await exchangeOfferAnswer(pc, pc2); - await listenToConnected(pc); + await Promise.all([ + exchangeOfferAnswer(pc, pc2), + new Promise(r => pc2.ontrack = e => e.track.onunmute = r) + ]); const statsReport = await pc.getStats(); validateStatsReport(statsReport); }, 'getStats() audio and video validate all mandatory stats'); @@ -195,12 +205,14 @@ const pc = createPeerConnectionWithCleanup(t); const pc2 = createPeerConnectionWithCleanup(t); - let [track, mediaStream] = await getTrackFromUserMedia('audio'); - pc.addTrack(track, mediaStream); + let [sendtrack, mediaStream] = await getTrackFromUserMedia('audio'); + pc.addTrack(sendtrack, mediaStream); exchangeIceCandidates(pc, pc2); - await exchangeOfferAnswer(pc, pc2); - await listenToConnected(pc); - const stats = await pc.getStats(track); + await Promise.all([ + exchangeOfferAnswer(pc, pc2), + new Promise(r => pc2.ontrack = e => e.track.onunmute = r) + ]); + const stats = await pc.getStats(sendtrack); getRequiredStats(stats, 'outbound-rtp'); }, `getStats() on track associated with RTCRtpSender should return stats report containing outbound-rtp stats`); diff --git a/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-onnegotiationneeded.html b/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-onnegotiationneeded.html index a87551a58c7dd5..6ede5ccebf1189 100644 --- a/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-onnegotiationneeded.html +++ b/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-onnegotiationneeded.html @@ -385,6 +385,172 @@ await new Promise(resolve => pc.onnegotiationneeded = resolve); }, 'Calling setStreams should cause negotiationneeded to fire'); + promise_test(async t => { + const pc = new RTCPeerConnection(); + t.add_cleanup(() => pc.close()); + + const transceiver = pc.addTransceiver('audio', {direction:'sendrecv'}); + const stream = new MediaStream(); + transceiver.sender.setStreams(stream); + await new Promise(resolve => pc.onnegotiationneeded = resolve); + + const offer = await pc.createOffer(); + await pc.setLocalDescription(offer); + const answer = await generateAnswer(offer); + await pc.setRemoteDescription(answer); + + const stream2 = new MediaStream(); + transceiver.sender.setStreams(stream2); + await new Promise(resolve => pc.onnegotiationneeded = resolve); + }, 'Calling setStreams with a different stream as before should cause negotiationneeded to fire'); + + promise_test(async t => { + const pc = new RTCPeerConnection(); + t.add_cleanup(() => pc.close()); + + const transceiver = pc.addTransceiver('audio', {direction:'sendrecv'}); + const stream = new MediaStream(); + transceiver.sender.setStreams(stream); + await new Promise(resolve => pc.onnegotiationneeded = resolve); + + const offer = await pc.createOffer(); + await pc.setLocalDescription(offer); + const answer = await generateAnswer(offer); + await pc.setRemoteDescription(answer); + + const stream2 = new MediaStream(); + transceiver.sender.setStreams(stream, stream2); + await new Promise(resolve => pc.onnegotiationneeded = resolve); + }, 'Calling setStreams with an additional stream should cause negotiationneeded to fire'); + + promise_test(async t => { + const pc = new RTCPeerConnection(); + t.add_cleanup(() => pc.close()); + + const transceiver = pc.addTransceiver('audio', {direction:'sendrecv'}); + const stream1 = new MediaStream(); + const stream2 = new MediaStream(); + transceiver.sender.setStreams(stream1, stream2); + await new Promise(resolve => pc.onnegotiationneeded = resolve); + + const offer = await pc.createOffer(); + await pc.setLocalDescription(offer); + const answer = await generateAnswer(offer); + await pc.setRemoteDescription(answer); + + transceiver.sender.setStreams(stream2); + await new Promise(resolve => pc.onnegotiationneeded = resolve); + }, 'Calling setStreams with a stream removed should cause negotiationneeded to fire'); + + promise_test(async t => { + const pc = new RTCPeerConnection(); + t.add_cleanup(() => pc.close()); + + const transceiver = pc.addTransceiver('audio', {direction:'sendrecv'}); + const stream1 = new MediaStream(); + const stream2 = new MediaStream(); + transceiver.sender.setStreams(stream1, stream2); + await new Promise(resolve => pc.onnegotiationneeded = resolve); + + const offer = await pc.createOffer(); + await pc.setLocalDescription(offer); + const answer = await generateAnswer(offer); + await pc.setRemoteDescription(answer); + + transceiver.sender.setStreams(); + await new Promise(resolve => pc.onnegotiationneeded = resolve); + }, 'Calling setStreams with all streams removed should cause negotiationneeded to fire'); + + promise_test(async t => { + const pc = new RTCPeerConnection(); + t.add_cleanup(() => pc.close()); + + const transceiver = pc.addTransceiver('audio', {direction:'sendrecv'}); + const stream = new MediaStream(); + transceiver.sender.setStreams(stream); + await new Promise(resolve => pc.onnegotiationneeded = resolve); + + const offer = await pc.createOffer(); + await pc.setLocalDescription(offer); + const answer = await generateAnswer(offer); + await pc.setRemoteDescription(answer); + + transceiver.sender.setStreams(stream); + const event = await Promise.race([ + new Promise(r => pc.onnegotiationneeded = r), + new Promise(r => t.step_timeout(r, 10)) + ]); + assert_equals(event, undefined, "No negotiationneeded event"); + }, 'Calling setStreams with the same stream as before should not cause negotiationneeded to fire'); + + promise_test(async t => { + const pc = new RTCPeerConnection(); + t.add_cleanup(() => pc.close()); + + const transceiver = pc.addTransceiver('audio', {direction:'sendrecv'}); + const stream = new MediaStream(); + transceiver.sender.setStreams(stream); + await new Promise(resolve => pc.onnegotiationneeded = resolve); + + const offer = await pc.createOffer(); + await pc.setLocalDescription(offer); + const answer = await generateAnswer(offer); + await pc.setRemoteDescription(answer); + + transceiver.sender.setStreams(stream, stream); + const event = await Promise.race([ + new Promise(r => pc.onnegotiationneeded = r), + new Promise(r => t.step_timeout(r, 10)) + ]); + assert_equals(event, undefined, "No negotiationneeded event"); + }, 'Calling setStreams with duplicates of the same stream as before should not cause negotiationneeded to fire'); + + promise_test(async t => { + const pc = new RTCPeerConnection(); + t.add_cleanup(() => pc.close()); + + const transceiver = pc.addTransceiver('audio', {direction:'sendrecv'}); + const stream1 = new MediaStream(); + const stream2 = new MediaStream(); + transceiver.sender.setStreams(stream1, stream2); + await new Promise(resolve => pc.onnegotiationneeded = resolve); + + const offer = await pc.createOffer(); + await pc.setLocalDescription(offer); + const answer = await generateAnswer(offer); + await pc.setRemoteDescription(answer); + + transceiver.sender.setStreams(stream2, stream1); + const event = await Promise.race([ + new Promise(r => pc.onnegotiationneeded = r), + new Promise(r => t.step_timeout(r, 10)) + ]); + assert_equals(event, undefined, "No negotiationneeded event"); + }, 'Calling setStreams with the same streams as before in a different order should not cause negotiationneeded to fire'); + + promise_test(async t => { + const pc = new RTCPeerConnection(); + t.add_cleanup(() => pc.close()); + + const transceiver = pc.addTransceiver('audio', {direction:'sendrecv'}); + const stream1 = new MediaStream(); + const stream2 = new MediaStream(); + transceiver.sender.setStreams(stream1, stream2); + await new Promise(resolve => pc.onnegotiationneeded = resolve); + + const offer = await pc.createOffer(); + await pc.setLocalDescription(offer); + const answer = await generateAnswer(offer); + await pc.setRemoteDescription(answer); + + transceiver.sender.setStreams(stream1, stream2, stream1); + const event = await Promise.race([ + new Promise(r => pc.onnegotiationneeded = r), + new Promise(r => t.step_timeout(r, 10)) + ]); + assert_equals(event, undefined, "No negotiationneeded event"); + }, 'Calling setStreams with duplicates of the same streams as before should not cause negotiationneeded to fire'); + promise_test(async t => { const pc1 = new RTCPeerConnection(); t.add_cleanup(() => pc1.close()); diff --git a/third_party/blink/web_tests/external/wpt/webrtc/RTCRtpSender-setStreams.https.html b/third_party/blink/web_tests/external/wpt/webrtc/RTCRtpSender-setStreams.https.html index 45b47d06a6c9c2..03ae863d0f3d36 100644 --- a/third_party/blink/web_tests/external/wpt/webrtc/RTCRtpSender-setStreams.https.html +++ b/third_party/blink/web_tests/external/wpt/webrtc/RTCRtpSender-setStreams.https.html @@ -49,7 +49,6 @@ return new Promise(resolve => callee.ontrack = t.step_func(event =>{ assert_equals(event.streams.length, 1); assert_equals(stream.id, event.streams[0].id); - assert_equals(track.id, event.track.id); assert_equals(event.streams[0].getTracks()[0], event.track); resolve(); })); diff --git a/third_party/blink/web_tests/external/wpt/webrtc/protocol/bundle.https.html b/third_party/blink/web_tests/external/wpt/webrtc/protocol/bundle.https.html index 569f1fdadfc803..a9381e1e2ab164 100644 --- a/third_party/blink/web_tests/external/wpt/webrtc/protocol/bundle.https.html +++ b/third_party/blink/web_tests/external/wpt/webrtc/protocol/bundle.https.html @@ -17,23 +17,13 @@ t.add_cleanup(() => stream.getTracks().forEach(track => track.stop())); stream.getTracks().forEach(track => caller.addTrack(track, stream)); - let metadataToBeLoaded; - callee.ontrack = (e) => { - const stream = e.streams[0]; - const v = document.createElement('video'); - v.autoplay = true; - v.srcObject = stream; - v.id = stream.id - metadataToBeLoaded = new Promise((resolve) => { - v.addEventListener('loadedmetadata', () => { - resolve(); - }); - }); - }; + exchangeIceCandidates(caller, callee); const offer = await caller.createOffer(); // remove the a=group:BUNDLE from the SDP when signaling. const sdp = offer.sdp.replace(/a=group:BUNDLE (.*)\r\n/, ''); + const ontrack = new Promise(r => callee.ontrack = r); + await callee.setRemoteDescription({type: 'offer', sdp}); await caller.setLocalDescription(offer); @@ -41,7 +31,14 @@ await caller.setRemoteDescription(answer); await callee.setLocalDescription(answer); - await metadataToBeLoaded; + const {streams: [recvStream]} = await ontrack; + assert_equals(recvStream.getTracks().length, 2, "Tracks should be added to the stream before sRD resolves."); + const v = document.createElement('video'); + v.autoplay = true; + v.srcObject = recvStream; + v.id = recvStream.id; + await new Promise(r => v.onloadedmetadata = r); + const senders = caller.getSenders(); const dtlsTransports = senders.map(s => s.transport); assert_equals(dtlsTransports.length, 2); @@ -61,21 +58,9 @@ t.add_cleanup(() => stream.getTracks().forEach(track => track.stop())); stream.getTracks().forEach(track => caller.addTrack(track, stream)); - let metadataToBeLoaded; - callee.ontrack = (e) => { - const stream = e.streams[0]; - const v = document.createElement('video'); - v.autoplay = true; - v.srcObject = stream; - v.id = stream.id - metadataToBeLoaded = new Promise((resolve) => { - v.addEventListener('loadedmetadata', () => { - resolve(); - }); - }); - }; exchangeIceCandidates(caller, callee); const offer = await caller.createOffer(); + const ontrack = new Promise(r => callee.ontrack = r); await callee.setRemoteDescription(offer); await caller.setLocalDescription(offer); const secondTransport = caller.getSenders()[1].transport; // Save a reference to this transport. @@ -84,7 +69,14 @@ await caller.setRemoteDescription(answer); await callee.setLocalDescription(answer); - await metadataToBeLoaded; + const {streams: [recvStream]} = await ontrack; + assert_equals(recvStream.getTracks().length, 2, "Tracks should be added to the stream before sRD resolves."); + const v = document.createElement('video'); + v.autoplay = true; + v.srcObject = recvStream; + v.id = recvStream.id; + await new Promise(r => v.onloadedmetadata = r); + const senders = caller.getSenders(); const dtlsTransports = senders.map(s => s.transport); assert_equals(dtlsTransports.length, 2); diff --git a/third_party/blink/web_tests/external/wpt/webrtc/third_party/sdp/sdp.js b/third_party/blink/web_tests/external/wpt/webrtc/third_party/sdp/sdp.js index d2a28706115bc5..a7538a671e7c35 100644 --- a/third_party/blink/web_tests/external/wpt/webrtc/third_party/sdp/sdp.js +++ b/third_party/blink/web_tests/external/wpt/webrtc/third_party/sdp/sdp.js @@ -670,7 +670,7 @@ SDPUtils.writeSctpDescription = function(media, sctp) { // recommends using a cryptographically random +ve 64-bit value // but right now this should be acceptable and within the right range SDPUtils.generateSessionId = function() { - return Math.random().toString().substr(2, 21); + return Math.floor((Math.random() * 4294967296) + 1); }; // Write boilder plate for start of SDP diff --git a/third_party/blink/web_tests/wpt_internal/view-transition-on-navigation/root-element-transition.html.ini b/third_party/blink/web_tests/wpt_internal/view-transition-on-navigation/root-element-transition.html.ini index 87ac3f5e49579b..b29fbb5907c120 100644 --- a/third_party/blink/web_tests/wpt_internal/view-transition-on-navigation/root-element-transition.html.ini +++ b/third_party/blink/web_tests/wpt_internal/view-transition-on-navigation/root-element-transition.html.ini @@ -1,2 +1,4 @@ [root-element-transition.html] - expected: FAIL + expected: + if product == "chrome": [ERROR, FAIL] + FAIL