Bug 79203 - [GTK] MediaStream implementation
Summary: [GTK] MediaStream implementation
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKitGTK (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords: Gtk, LayoutTestFailure
Depends on: 110150 122322 122324 122443 122444 122831 122832 122833 122834 123144 123145 123158 123345 142393 142476
Blocks:
  Show dependency treegraph
 
Reported: 2012-02-22 00:24 PST by Philippe Normand
Modified: 2021-09-07 17:06 PDT (History)
17 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Philippe Normand 2012-02-22 00:24:07 PST
I wonder if this started failing after r108437. Diff:

--- /home/slave/webkitgtk/gtk-linux-64-debug/build/layout-test-results/fast/dom/MediaStream/argument-types-expected.txt 
+++ /home/slave/webkitgtk/gtk-linux-64-debug/build/layout-test-results/fast/dom/MediaStream/argument-types-actual.txt 
@@ -14,7 +14,7 @@
 PASS navigator.webkitGetUserMedia(Infinity) threw exception TypeError: Not enough arguments.
 PASS navigator.webkitGetUserMedia(-Infinity) threw exception TypeError: Not enough arguments.
 PASS navigator.webkitGetUserMedia(emptyFunction) threw exception TypeError: Not enough arguments.
-PASS navigator.webkitGetUserMedia("video", emptyFunction) did not throw exception.
+FAIL navigator.webkitGetUserMedia("video", emptyFunction) should not throw exception. Threw exception Error: NOT_SUPPORTED_ERR: DOM Exception 9
 PASS navigator.webkitGetUserMedia(undefined, emptyFunction) threw exception Error: NOT_SUPPORTED_ERR: DOM Exception 9.
 PASS navigator.webkitGetUserMedia(null, emptyFunction) threw exception Error: NOT_SUPPORTED_ERR: DOM Exception 9.
 PASS navigator.webkitGetUserMedia({}, emptyFunction) threw exception Error: NOT_SUPPORTED_ERR: DOM Exception 9.
@@ -27,22 +27,22 @@
 PASS navigator.webkitGetUserMedia("video", "video") threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS navigator.webkitGetUserMedia("video", undefined) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS navigator.webkitGetUserMedia("video", null) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
-PASS navigator.webkitGetUserMedia("video", {}) did not throw exception.
-PASS navigator.webkitGetUserMedia("video", objectThrowingException) did not throw exception.
+FAIL navigator.webkitGetUserMedia("video", {}) should not throw exception. Threw exception Error: NOT_SUPPORTED_ERR: DOM Exception 9
+FAIL navigator.webkitGetUserMedia("video", objectThrowingException) should not throw exception. Threw exception Error: NOT_SUPPORTED_ERR: DOM Exception 9
 PASS navigator.webkitGetUserMedia("video", true) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS navigator.webkitGetUserMedia("video", 42) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS navigator.webkitGetUserMedia("video", Infinity) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS navigator.webkitGetUserMedia("video", -Infinity) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
-PASS navigator.webkitGetUserMedia("video", emptyFunction, emptyFunction) did not throw exception.
-PASS navigator.webkitGetUserMedia("video", emptyFunction, undefined) did not throw exception.
-PASS navigator.webkitGetUserMedia("audio, video", emptyFunction, undefined) did not throw exception.
-PASS navigator.webkitGetUserMedia("audio, somethingelse,,video", emptyFunction, undefined) did not throw exception.
-PASS navigator.webkitGetUserMedia("audio, video user", emptyFunction, undefined) did not throw exception.
-PASS navigator.webkitGetUserMedia("audio, video environment", emptyFunction, undefined) did not throw exception.
+FAIL navigator.webkitGetUserMedia("video", emptyFunction, emptyFunction) should not throw exception. Threw exception Error: NOT_SUPPORTED_ERR: DOM Exception 9
+FAIL navigator.webkitGetUserMedia("video", emptyFunction, undefined) should not throw exception. Threw exception Error: NOT_SUPPORTED_ERR: DOM Exception 9
+FAIL navigator.webkitGetUserMedia("audio, video", emptyFunction, undefined) should not throw exception. Threw exception Error: NOT_SUPPORTED_ERR: DOM Exception 9
+FAIL navigator.webkitGetUserMedia("audio, somethingelse,,video", emptyFunction, undefined) should not throw exception. Threw exception Error: NOT_SUPPORTED_ERR: DOM Exception 9
+FAIL navigator.webkitGetUserMedia("audio, video user", emptyFunction, undefined) should not throw exception. Threw exception Error: NOT_SUPPORTED_ERR: DOM Exception 9
+FAIL navigator.webkitGetUserMedia("audio, video environment", emptyFunction, undefined) should not throw exception. Threw exception Error: NOT_SUPPORTED_ERR: DOM Exception 9
 PASS navigator.webkitGetUserMedia("video", emptyFunction, "video") threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
-PASS navigator.webkitGetUserMedia("video", emptyFunction, null) did not throw exception.
-PASS navigator.webkitGetUserMedia("video", emptyFunction, {}) did not throw exception.
-PASS navigator.webkitGetUserMedia("video", emptyFunction, objectThrowingException) did not throw exception.
+FAIL navigator.webkitGetUserMedia("video", emptyFunction, null) should not throw exception. Threw exception Error: NOT_SUPPORTED_ERR: DOM Exception 9
+FAIL navigator.webkitGetUserMedia("video", emptyFunction, {}) should not throw exception. Threw exception Error: NOT_SUPPORTED_ERR: DOM Exception 9
+FAIL navigator.webkitGetUserMedia("video", emptyFunction, objectThrowingException) should not throw exception. Threw exception Error: NOT_SUPPORTED_ERR: DOM Exception 9
 PASS navigator.webkitGetUserMedia("video", emptyFunction, true) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS navigator.webkitGetUserMedia("video", emptyFunction, 42) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS navigator.webkitGetUserMedia("video", emptyFunction, Infinity) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
Comment 1 Philippe Normand 2012-02-22 00:25:35 PST
Also:

--- /home/slave/webkitgtk/gtk-linux-64-debug/build/layout-test-results/fast/mediastream/peerconnection-Attributes-expected.txt 
+++ /home/slave/webkitgtk/gtk-linux-64-debug/build/layout-test-results/fast/mediastream/peerconnection-Attributes-actual.txt 
@@ -1,32 +1,10 @@
+CONSOLE MESSAGE: line 62: NOT_SUPPORTED_ERR: DOM Exception 9: The implementation did not support the requested type of object or operation.
 Tests PeerToPeerConnection related Attributes according to http://www.w3.org/TR/webrtc/
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS typeof pc.addStream == 'function' is true
-PASS typeof pc.removeStream == 'function' is true
-PASS typeof pc.close == 'function' is true
-PASS pc.NEW ==0 is true
-PASS pc.NEGOTIATING == 1 is true
-PASS pc.ACTIVE == 2 is true
-PASS pc.CLOSED == 3 is true
-FAIL pc.ICE_GATHERING == 0x100  should be true. Was false.
-FAIL pc.ICE_WAITING == 0x200 should be true. Was false.
-FAIL pc.ICE_CHECKING == 0x300 should be true. Was false.
-FAIL pc.ICE_CONNECTED == 0x400 should be true. Was false.
-FAIL pc.ICE_COMPLETED == 0x500 should be true. Was false.
-FAIL pc.ICE_FAILED == 0x600 should be true. Was false.
-FAIL pc.ICE_CLOSED == 0x700 should be true. Was false.
-FAIL pc.SDP_IDLE == 0x1000 should be true. Was false.
-FAIL pc.SDP_WAITING == 0x2000 should be true. Was false.
-FAIL pc.SDP_GLARE ==0x3000 should be true. Was false.
-PASS typeof pc.localStreams == 'object' is true
-PASS typeof pc.remoteStreams == 'object' is true
-PASS typeof pc.onaddstream == 'object' is true
-PASS typeof pc.onremovestream == 'object' is true
-PASS typeof pc.onconnecting == 'object' is true
-PASS typeof pc.onopen == 'object' is true
-PASS successfullyParsed is true
+FAIL successfullyParsed should be true (of type boolean). Was undefined (of type undefined).
 
 TEST COMPLETE
Comment 2 Philippe Normand 2012-02-22 07:09:02 PST
And:

--- /home/slave/webkitgtk/gtk-linux-64-release/build/layout-test-results/fast/mediastream/peerconnection-argument-types-expected.txt 
+++ /home/slave/webkitgtk/gtk-linux-64-release/build/layout-test-results/fast/mediastream/peerconnection-argument-types-actual.txt 
@@ -3,7 +3,7 @@
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS typeof webkitPeerConnection== 'function' is true
+FAIL typeof webkitPeerConnection== 'function' should be true. Was false.
 PASS new webkitPeerConnection() threw exception TypeError: Not enough arguments.
 PASS new webkitPeerConnection("STUN 203.0.113.2:2478") threw exception TypeError: Not enough arguments.
 PASS new webkitPeerConnection("STUN relay.example.net:3478") threw exception TypeError: Not enough arguments.
@@ -45,7 +45,7 @@
 PASS new webkitPeerConnection("STUN NONE",emptyFunction) did not throw exception.
 PASS new webkitPeerConnection("STUNS NONE",emptyFunction) did not throw exception.
 PASS new webkitPeerConnection("TURN NONE",undefined) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
-PASS new webkitPeerConnection("TURNS NONE",{}) did not throw exception.
+FAIL new webkitPeerConnection("TURNS NONE",{}) should not throw exception. Threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17
 PASS new webkitPeerConnection("STUN NONE",42) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS new webkitPeerConnection("STUNS NONE",Infinity) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
 PASS new webkitPeerConnection("STUNS NONE",-Infinity) threw exception Error: TYPE_MISMATCH_ERR: DOM Exception 17.
Comment 3 Zan Dobersek 2012-05-05 10:09:37 PDT
The following tests were found to be passing consistently after moving from using the Skipped list to using test_expectations.txt:
	fast/mediastream/peerconnection-Attributes.html

Their expectations were removed in r116122[1] (covered by bug #85591). Tests that are covered by this bug and are still failing are the following:
	fast/mediastream/argument-types.html
	fast/mediastream/constructors.html
	fast/mediastream/peerconnection-argument-types.html
	fast/mediastream/peerconnection-iceoptions.html

1: http://trac.webkit.org/changeset/116122
Comment 4 Philippe Normand 2012-05-15 16:17:20 PDT
As agreed with Martin we decided to skip the whole fast/mediastream suite until someone actually devotes time to complete the implementation.

Please note however that mediastream is still enabled in build-webkit so the bots still catch compilation issues.
Comment 5 Philippe Normand 2013-10-07 05:26:28 PDT
Let's turn this one into a meta-bug.
Comment 6 Philippe Normand 2015-03-09 00:58:56 PDT
We are going to leverage the OpenWebRTC library for mediastream/webrtc support in the GTK port.
Comment 7 Carlos Alberto Lopez Perez 2017-01-17 17:36:38 PST
Done: unskipped all the MediaStream tests and instead marked the ones still failing or timing out as such in r210838: <http://trac.webkit.org/changeset/210838>

Rationale: https://bugs.webkit.org/show_bug.cgi?id=160996#c2
Comment 8 Charlie Turner 2017-07-25 08:22:14 PDT
fast/mediastream/MediaStream-video-element-track-stop.html is no longer timing out, but rather either passing or crashing. Will update in separate gardening commit.
Comment 9 Miguel Gomez 2018-06-14 07:15:15 PDT
fast/mediastream/MediaStream-video-element.html is flaky pass/crash, updating the expectations file.
Comment 10 Miguel Gomez 2018-07-26 07:53:42 PDT
fast/mediastream/MediaStream-video-element.html is flaky timeout/text/pass on WPE. Updated expectations.
Comment 11 Miguel Gomez 2018-11-29 07:09:03 PST
imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-MediaElement-preload-none.https.html

is flaky. It's marked as text failure but every now and then it passes.
Comment 12 Miguel Gomez 2019-01-10 05:56:28 PST
fast/mediastream/mock-media-source-webaudio.html is now flaky timeout/pass

Updating expectations.
Comment 13 Miguel Gomez 2019-01-10 07:07:01 PST
Since r238951 fast/mediastream/getUserMedia-webaudio.html doesn't fail. Most of the time it passes but sometimes it times out on the first round.
Comment 14 Alicia Boya García 2019-03-27 16:21:06 PDT
fast/mediastream/MediaStream-video-element-track-stop.html is now failing instead of [Crash Timeout]. It's a bit too son to say if the other expectations (e.g. flaky crashes) don't happen.
Comment 15 Diego Pino 2019-04-05 04:43:39 PDT
It seems Miguel correctly diagnose the new status of `fast/mediastream/mock-media-source-webaudio.html` and `fast/mediastream/getUserMedia-webaudio.html` but test expectations were not updated. Fixed in https://trac.webkit.org/changeset/243930/webkit
Comment 16 Zan Dobersek 2020-05-19 00:26:44 PDT
No longer crashing:
 - fast/mediastream/MediaStream-video-element-track-stop.html (flaky failure/timeout)
 - fast/mediastream/RTCPeerConnection-icecandidate-event.html (flaky pass/timeout)
 - fast/mediastream/RTCPeerConnection-media-setup-two-dialogs.html (now passing)
 - fast/mediastream/RTCPeerConnection-addIceCandidate.html (now passing)
 - fast/mediastream/RTCPeerConnection-media-setup-callbacks-single-dialog.html (now passing)
Comment 17 Arcady Goldmints-Orlov 2021-09-07 17:06:21 PDT
As of r282054, fast/mediastream/RTCPeerConnection-iceconnectionstatechange-event.html is now a flaky failure instead of a consistent timeout.