Title: [139618] trunk
Revision
139618
Author
tom...@google.com
Date
2013-01-14 09:28:55 -0800 (Mon, 14 Jan 2013)

Log Message

MediaStream API: Update MediaStreamTrack::readyState to match specification
https://bugs.webkit.org/show_bug.cgi?id=106781

Reviewed by Adam Barth.

Source/WebCore:

MediaStreamTrack::readyState now returns a string like the rest of the RTC classes.

Existing tests expanded to cover patch.

* Modules/mediastream/MediaStream.cpp:
(WebCore::processTrack):
* Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::readyState):
(WebCore::MediaStreamTrack::ended):
(WebCore):
* Modules/mediastream/MediaStreamTrack.h:
(MediaStreamTrack):
* Modules/mediastream/MediaStreamTrack.idl:

LayoutTests:

* fast/mediastream/MediaStreamTrack-expected.txt:
* fast/mediastream/MediaStreamTrack.html:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (139617 => 139618)


--- trunk/LayoutTests/ChangeLog	2013-01-14 17:25:04 UTC (rev 139617)
+++ trunk/LayoutTests/ChangeLog	2013-01-14 17:28:55 UTC (rev 139618)
@@ -1,3 +1,13 @@
+2013-01-14  Tommy Widenflycht  <tom...@google.com>
+
+        MediaStream API: Update MediaStreamTrack::readyState to match specification
+        https://bugs.webkit.org/show_bug.cgi?id=106781
+
+        Reviewed by Adam Barth.
+
+        * fast/mediastream/MediaStreamTrack-expected.txt:
+        * fast/mediastream/MediaStreamTrack.html:
+
 2013-01-14  Andrey Lushnikov  <lushni...@chromium.org>
 
         Web Inspector: add text editor formatter test

Modified: trunk/LayoutTests/fast/mediastream/MediaStreamTrack-expected.txt (139617 => 139618)


--- trunk/LayoutTests/fast/mediastream/MediaStreamTrack-expected.txt	2013-01-14 17:25:04 UTC (rev 139617)
+++ trunk/LayoutTests/fast/mediastream/MediaStreamTrack-expected.txt	2013-01-14 17:28:55 UTC (rev 139618)
@@ -4,9 +4,13 @@
 
 
 PASS getUserMedia succeeded.
+PASS track.readyState is "live"
 PASS Track onmute callback succeeded.
+PASS track.readyState is "muted"
 PASS Track onunmute callback succeeded.
+PASS track.readyState is "live"
 PASS Track onended callback succeeded.
+PASS track.readyState is "ended"
 PASS successfullyParsed is true
 
 TEST COMPLETE

Modified: trunk/LayoutTests/fast/mediastream/MediaStreamTrack.html (139617 => 139618)


--- trunk/LayoutTests/fast/mediastream/MediaStreamTrack.html	2013-01-14 17:25:04 UTC (rev 139617)
+++ trunk/LayoutTests/fast/mediastream/MediaStreamTrack.html	2013-01-14 17:28:55 UTC (rev 139618)
@@ -34,18 +34,24 @@
 function onTrackEnded() {
     testPassed('Track onended callback succeeded.');
 
+    shouldBeEqualToString('track.readyState', 'ended');
+
     finishJSTest();
 }
 
 function onTrackUnmute() {
     testPassed('Track onunmute callback succeeded.');
 
+    shouldBeEqualToString('track.readyState', 'live');
+
     stream.stop();
 }
 
 function onTrackMute() {
     testPassed('Track onmute callback succeeded.');
 
+    shouldBeEqualToString('track.readyState', 'muted');
+
     track.enabled = true;
 }
 
@@ -55,6 +61,8 @@
     stream = s;
     track = stream.getVideoTracks()[0];
 
+    shouldBeEqualToString('track.readyState', 'live');
+
     track._onunmute_ = onTrackUnmute;
     track._onmute_ = onTrackMute;
     track._onended_ = onTrackEnded;

Modified: trunk/Source/WebCore/ChangeLog (139617 => 139618)


--- trunk/Source/WebCore/ChangeLog	2013-01-14 17:25:04 UTC (rev 139617)
+++ trunk/Source/WebCore/ChangeLog	2013-01-14 17:28:55 UTC (rev 139618)
@@ -1,3 +1,24 @@
+2013-01-14  Tommy Widenflycht  <tom...@google.com>
+
+        MediaStream API: Update MediaStreamTrack::readyState to match specification
+        https://bugs.webkit.org/show_bug.cgi?id=106781
+
+        Reviewed by Adam Barth.
+
+        MediaStreamTrack::readyState now returns a string like the rest of the RTC classes.
+
+        Existing tests expanded to cover patch.
+
+        * Modules/mediastream/MediaStream.cpp:
+        (WebCore::processTrack):
+        * Modules/mediastream/MediaStreamTrack.cpp:
+        (WebCore::MediaStreamTrack::readyState):
+        (WebCore::MediaStreamTrack::ended):
+        (WebCore):
+        * Modules/mediastream/MediaStreamTrack.h:
+        (MediaStreamTrack):
+        * Modules/mediastream/MediaStreamTrack.idl:
+
 2013-01-14  Vsevolod Vlasov  <vse...@chromium.org>
 
         Web Inspector: Audit Tool's False Positive on Set-Cookie header

Modified: trunk/Source/WebCore/Modules/mediastream/MediaStream.cpp (139617 => 139618)


--- trunk/Source/WebCore/Modules/mediastream/MediaStream.cpp	2013-01-14 17:25:04 UTC (rev 139617)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStream.cpp	2013-01-14 17:28:55 UTC (rev 139618)
@@ -48,7 +48,7 @@
 
 static void processTrack(MediaStreamTrack* track, MediaStreamSourceVector& sourceVector)
 {
-    if (track->readyState() == MediaStreamTrack::ENDED)
+    if (track->ended())
         return;
 
     MediaStreamSource* source = track->component()->source();

Modified: trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp (139617 => 139618)


--- trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp	2013-01-14 17:25:04 UTC (rev 139617)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp	2013-01-14 17:28:55 UTC (rev 139618)
@@ -99,24 +99,30 @@
     MediaStreamCenter::instance().didSetMediaStreamTrackEnabled(m_streamDescriptor.get(), m_component.get());
 }
 
-MediaStreamTrack::ReadyState MediaStreamTrack::readyState() const
+String MediaStreamTrack::readyState() const
 {
     if (m_stopped)
-        return ENDED;
+        return ASCIILiteral("ended");
 
     switch (m_component->source()->readyState()) {
     case MediaStreamSource::ReadyStateLive:
-        return LIVE;
+        return ASCIILiteral("live");
     case MediaStreamSource::ReadyStateMuted:
-        return MUTED;
+        return ASCIILiteral("muted");
     case MediaStreamSource::ReadyStateEnded:
-        return ENDED;
+        return ASCIILiteral("ended");
     }
 
     ASSERT_NOT_REACHED();
-    return ENDED;
+    return String();
 }
 
+bool MediaStreamTrack::ended() const
+{
+    return m_stopped || (m_component->source()->readyState() == MediaStreamSource::ReadyStateEnded);
+}
+
+
 void MediaStreamTrack::sourceChangedState()
 {
     if (m_stopped)

Modified: trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h (139617 => 139618)


--- trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h	2013-01-14 17:25:04 UTC (rev 139617)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h	2013-01-14 17:28:55 UTC (rev 139618)
@@ -43,12 +43,6 @@
 
 class MediaStreamTrack : public RefCounted<MediaStreamTrack>, public ActiveDOMObject, public EventTarget, public MediaStreamSource::Observer {
 public:
-    enum ReadyState {
-        LIVE = 0,
-        MUTED = 1,
-        ENDED = 2
-    };
-
     static PassRefPtr<MediaStreamTrack> create(ScriptExecutionContext*, PassRefPtr<MediaStreamDescriptor>, MediaStreamComponent*);
     virtual ~MediaStreamTrack();
 
@@ -59,7 +53,7 @@
     bool enabled() const;
     void setEnabled(bool);
 
-    ReadyState readyState() const;
+    String readyState() const;
 
     DEFINE_ATTRIBUTE_EVENT_LISTENER(mute);
     DEFINE_ATTRIBUTE_EVENT_LISTENER(unmute);
@@ -67,6 +61,7 @@
 
     MediaStreamDescriptor* streamDescriptor();
     MediaStreamComponent* component();
+    bool ended() const;
 
     // EventTarget
     virtual const AtomicString& interfaceName() const OVERRIDE;

Modified: trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.idl (139617 => 139618)


--- trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.idl	2013-01-14 17:25:04 UTC (rev 139617)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.idl	2013-01-14 17:28:55 UTC (rev 139618)
@@ -32,10 +32,7 @@
     readonly attribute DOMString label;
              attribute boolean enabled;
 
-    const unsigned short LIVE = 0;
-    const unsigned short MUTED = 1;
-    const unsigned short ENDED = 2;
-    readonly attribute unsigned short readyState;
+    readonly attribute DOMString readyState;
 
     attribute EventListener onmute;
     attribute EventListener onunmute;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to