- Revision
- 168679
- Author
- [email protected]
- Date
- 2014-05-13 06:56:15 -0700 (Tue, 13 May 2014)
Log Message
[MediaStream] MediaStream.addTrack Should not check for active state.
Source/WebCore:
https://bugs.webkit.org/show_bug.cgi?id=132558
Patch by Kiran <[email protected]> on 2014-05-13
Reviewed by Eric Carlson.
MediaStream.addTrack method is checking for active state of a
MediaStream, but it should not check for active state while adding a Track.
Test: fast/mediastream/MediaStream-add-tracks-to-inactive-stream.html
* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::addTrack):
LayoutTests:
Nhttps://bugs.webkit.org/show_bug.cgi?id=132558.
Patch by Kiran <[email protected]> on 2014-05-13
Reviewed by Eric Carlson.
MediaStream.addTrack method is checking for active state of a
MediaStream, but it should not check for active state while adding a Track
Removed check not to add tracks to ended stream:relative which forced tests to avoid this bug.
* fast/mediastream/MediaStream-add-remove-tracks-expected.txt:
* fast/mediastream/MediaStream-add-remove-tracks.html:
New tests:
* fast/mediastream/MediaStream-add-tracks-to-inactive-stream-expected.txt: Added.
* fast/mediastream/MediaStream-add-tracks-to-inactive-stream.html: Added.
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (168678 => 168679)
--- trunk/LayoutTests/ChangeLog 2014-05-13 13:11:25 UTC (rev 168678)
+++ trunk/LayoutTests/ChangeLog 2014-05-13 13:56:15 UTC (rev 168679)
@@ -1,3 +1,21 @@
+2014-05-13 Kiran <[email protected]>
+
+ [MediaStream] MediaStream.addTrack Should not check for active state.
+ Nhttps://bugs.webkit.org/show_bug.cgi?id=132558.
+
+ Reviewed by Eric Carlson.
+
+ MediaStream.addTrack method is checking for active state of a
+ MediaStream, but it should not check for active state while adding a Track
+
+ Removed check not to add tracks to ended stream:relative which forced tests to avoid this bug.
+ * fast/mediastream/MediaStream-add-remove-tracks-expected.txt:
+ * fast/mediastream/MediaStream-add-remove-tracks.html:
+
+ New tests:
+ * fast/mediastream/MediaStream-add-tracks-to-inactive-stream-expected.txt: Added.
+ * fast/mediastream/MediaStream-add-tracks-to-inactive-stream.html: Added.
+
2014-05-13 Lorenzo Tilve <[email protected]>
[GTK] Unreviewed GTK gardening
Modified: trunk/LayoutTests/fast/mediastream/MediaStream-add-remove-tracks-expected.txt (168678 => 168679)
--- trunk/LayoutTests/fast/mediastream/MediaStream-add-remove-tracks-expected.txt 2014-05-13 13:11:25 UTC (rev 168678)
+++ trunk/LayoutTests/fast/mediastream/MediaStream-add-remove-tracks-expected.txt 2014-05-13 13:56:15 UTC (rev 168679)
@@ -48,8 +48,7 @@
PASS stream2.getAudioTracks().length is 0
PASS stream2.getVideoTracks().length is 0
-*** it should be impossible to add a track after the stream has ended
-PASS stream2.addTrack(audioTrack) threw exception Error: InvalidStateError: DOM Exception 11.
+*** it should be impossible to remove a track after the stream has ended
PASS stream2.removeTrack(audioTrack) threw exception Error: InvalidStateError: DOM Exception 11.
Stream2 is inactive.
PASS successfullyParsed is true
Modified: trunk/LayoutTests/fast/mediastream/MediaStream-add-remove-tracks.html (168678 => 168679)
--- trunk/LayoutTests/fast/mediastream/MediaStream-add-remove-tracks.html 2014-05-13 13:11:25 UTC (rev 168678)
+++ trunk/LayoutTests/fast/mediastream/MediaStream-add-remove-tracks.html 2014-05-13 13:56:15 UTC (rev 168679)
@@ -130,8 +130,7 @@
shouldBe('stream2.getAudioTracks().length', '0');
shouldBe('stream2.getVideoTracks().length', '0');
- debug("<br>*** it should be impossible to add a track after the stream has ended");
- shouldThrow('stream2.addTrack(audioTrack)', '"Error: InvalidStateError: DOM Exception 11"');
+ debug("<br>*** it should be impossible to remove a track after the stream has ended");
shouldThrow('stream2.removeTrack(audioTrack)', '"Error: InvalidStateError: DOM Exception 11"');
}
Added: trunk/LayoutTests/fast/mediastream/MediaStream-add-tracks-to-inactive-stream-expected.txt (0 => 168679)
--- trunk/LayoutTests/fast/mediastream/MediaStream-add-tracks-to-inactive-stream-expected.txt (rev 0)
+++ trunk/LayoutTests/fast/mediastream/MediaStream-add-tracks-to-inactive-stream-expected.txt 2014-05-13 13:56:15 UTC (rev 168679)
@@ -0,0 +1,13 @@
+Test adding tracks to inactive MediaStream.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+MediaStream without tracks created.
+PASS stream2.getAudioTracks().length is 0
+Adding tracks to inactive stream
+PASS stream2.getAudioTracks().length is 1
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Added: trunk/LayoutTests/fast/mediastream/MediaStream-add-tracks-to-inactive-stream.html (0 => 168679)
--- trunk/LayoutTests/fast/mediastream/MediaStream-add-tracks-to-inactive-stream.html (rev 0)
+++ trunk/LayoutTests/fast/mediastream/MediaStream-add-tracks-to-inactive-stream.html 2014-05-13 13:56:15 UTC (rev 168679)
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+ <head>
+ <script src=""
+ <script>
+
+
+ var stream1;
+ var audioTrack;
+
+ function error()
+ {
+ testFailed('Stream generation failed.');
+ finishJSTest();
+ }
+
+ function getUserMedia(dictionary, callback)
+ {
+ try {
+ navigator.webkitGetUserMedia(dictionary, callback, error);
+ } catch (e) {
+ testFailed('webkitGetUserMedia threw exception :' + e);
+ finishJSTest();
+ }
+ }
+
+ function tryAddTrack(stream, track)
+ {
+ try {
+ stream.addTrack(track);
+ } catch (exception) {
+ testFailed("addTrack threw an exception.");
+ finishJSTest();
+ }
+ }
+
+ function createStreamAndAddTracks()
+ {
+ stream2 = new webkitMediaStream();
+ debug("MediaStream without tracks created.");
+ shouldBe('stream2.getAudioTracks().length', '0');
+ audioTrack = stream1.getAudioTracks()[0];
+ debug("Adding tracks to inactive stream");
+ tryAddTrack(stream2, audioTrack);
+ shouldBe('stream2.getAudioTracks().length', '1');
+ finishJSTest();
+ }
+
+ function gotStream1(s)
+ {
+ stream1 = s;
+ createStreamAndAddTracks();
+ }
+
+ function startMedia()
+ {
+ description("Test adding tracks to inactive MediaStream.");
+ getUserMedia({audio:true, video:true}, gotStream1);
+ }
+ window.jsTestIsAsync = true;
+ window.successfullyParsed = true;
+ </script>
+ <script src=""
+ </head>
+ <body _onload_="startMedia()">
+ <p id="description"></p>
+ <div id="console"></div>
+ </body>
+</html>
Modified: trunk/Source/WebCore/ChangeLog (168678 => 168679)
--- trunk/Source/WebCore/ChangeLog 2014-05-13 13:11:25 UTC (rev 168678)
+++ trunk/Source/WebCore/ChangeLog 2014-05-13 13:56:15 UTC (rev 168679)
@@ -1,3 +1,18 @@
+2014-05-13 Kiran <[email protected]>
+
+ [MediaStream] MediaStream.addTrack Should not check for active state.
+ https://bugs.webkit.org/show_bug.cgi?id=132558
+
+ Reviewed by Eric Carlson.
+
+ MediaStream.addTrack method is checking for active state of a
+ MediaStream, but it should not check for active state while adding a Track.
+
+ Test: fast/mediastream/MediaStream-add-tracks-to-inactive-stream.html
+
+ * Modules/mediastream/MediaStream.cpp:
+ (WebCore::MediaStream::addTrack):
+
2014-05-12 Mark Lam <[email protected]>
WebKit2 on iOS needs to capture the main thread's floating point environment.
Modified: trunk/Source/WebCore/Modules/mediastream/MediaStream.cpp (168678 => 168679)
--- trunk/Source/WebCore/Modules/mediastream/MediaStream.cpp 2014-05-13 13:11:25 UTC (rev 168678)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStream.cpp 2014-05-13 13:56:15 UTC (rev 168679)
@@ -143,11 +143,6 @@
void MediaStream::addTrack(PassRefPtr<MediaStreamTrack> prpTrack, ExceptionCode& ec)
{
- if (!active()) {
- ec = INVALID_STATE_ERR;
- return;
- }
-
if (!prpTrack) {
ec = TYPE_MISMATCH_ERR;
return;