Title: [107054] trunk/Source/WebCore
Revision
107054
Author
tom...@google.com
Date
2012-02-08 01:52:17 -0800 (Wed, 08 Feb 2012)

Log Message

MediaStream API: Adding the onstatechange callback to PeerConnection
https://bugs.webkit.org/show_bug.cgi?id=77954

When readyState changes a callback should be triggered.

Reviewed by Adam Barth.

Tests for the Media Stream API will be provided by the bug 56587, pending enough landed code.

* dom/EventNames.h:
(WebCore):
* mediastream/PeerConnection.cpp:
(WebCore::PeerConnection::changeReadyState):
* mediastream/PeerConnection.h:
(PeerConnection):
(WebCore::PeerConnection::didChangeState):
* mediastream/PeerConnection.idl:
* platform/mediastream/PeerConnectionHandlerClient.h:
(PeerConnectionHandlerClient):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (107053 => 107054)


--- trunk/Source/WebCore/ChangeLog	2012-02-08 09:51:14 UTC (rev 107053)
+++ trunk/Source/WebCore/ChangeLog	2012-02-08 09:52:17 UTC (rev 107054)
@@ -1,3 +1,25 @@
+2012-02-08  Tommy Widenflycht  <tom...@google.com>
+
+        MediaStream API: Adding the onstatechange callback to PeerConnection
+        https://bugs.webkit.org/show_bug.cgi?id=77954
+
+        When readyState changes a callback should be triggered.
+
+        Reviewed by Adam Barth.
+
+        Tests for the Media Stream API will be provided by the bug 56587, pending enough landed code.
+
+        * dom/EventNames.h:
+        (WebCore):
+        * mediastream/PeerConnection.cpp:
+        (WebCore::PeerConnection::changeReadyState):
+        * mediastream/PeerConnection.h:
+        (PeerConnection):
+        (WebCore::PeerConnection::didChangeState):
+        * mediastream/PeerConnection.idl:
+        * platform/mediastream/PeerConnectionHandlerClient.h:
+        (PeerConnectionHandlerClient):
+
 2012-02-08  Kentaro Hara  <hara...@chromium.org>
 
         Rename [DelegatingPutFunction] IDL to [CustomNamedSetter] IDL

Modified: trunk/Source/WebCore/dom/EventNames.h (107053 => 107054)


--- trunk/Source/WebCore/dom/EventNames.h	2012-02-08 09:51:14 UTC (rev 107053)
+++ trunk/Source/WebCore/dom/EventNames.h	2012-02-08 09:52:17 UTC (rev 107054)
@@ -194,6 +194,7 @@
     macro(connecting) \
     macro(addstream) \
     macro(removestream) \
+    macro(statechange) \
     \
     macro(show) \
     \

Modified: trunk/Source/WebCore/mediastream/PeerConnection.cpp (107053 => 107054)


--- trunk/Source/WebCore/mediastream/PeerConnection.cpp	2012-02-08 09:51:14 UTC (rev 107053)
+++ trunk/Source/WebCore/mediastream/PeerConnection.cpp	2012-02-08 09:52:17 UTC (rev 107054)
@@ -367,6 +367,8 @@
     case CLOSED:
         break;
     }
+
+    dispatchEvent(Event::create(eventNames().statechangeEvent, false, false));
 }
 
 } // namespace WebCore

Modified: trunk/Source/WebCore/mediastream/PeerConnection.h (107053 => 107054)


--- trunk/Source/WebCore/mediastream/PeerConnection.h	2012-02-08 09:51:14 UTC (rev 107053)
+++ trunk/Source/WebCore/mediastream/PeerConnection.h	2012-02-08 09:52:17 UTC (rev 107054)
@@ -58,14 +58,6 @@
 
     void processSignalingMessage(const String& message, ExceptionCode&);
 
-    // Name and values of the enum must match the corressponding constants in the .idl file.
-    enum ReadyState {
-        NEW = 0,
-        NEGOTIATING = 1,
-        ACTIVE = 2,
-        CLOSED = 3
-    };
-
     ReadyState readyState() const;
 
     void send(const String& text, ExceptionCode&);
@@ -78,6 +70,7 @@
     DEFINE_ATTRIBUTE_EVENT_LISTENER(connecting);
     DEFINE_ATTRIBUTE_EVENT_LISTENER(open);
     DEFINE_ATTRIBUTE_EVENT_LISTENER(message);
+    DEFINE_ATTRIBUTE_EVENT_LISTENER(statechange);
     DEFINE_ATTRIBUTE_EVENT_LISTENER(addstream);
     DEFINE_ATTRIBUTE_EVENT_LISTENER(removestream);
 
@@ -87,6 +80,7 @@
     virtual void didReceiveDataStreamMessage(const char* data, size_t length);
     virtual void didAddRemoteStream(PassRefPtr<MediaStreamDescriptor>);
     virtual void didRemoveRemoteStream(MediaStreamDescriptor*);
+    virtual void didChangeState(ReadyState state) { changeReadyState(state); }
 
     // EventTarget
     virtual const AtomicString& interfaceName() const;

Modified: trunk/Source/WebCore/mediastream/PeerConnection.idl (107053 => 107054)


--- trunk/Source/WebCore/mediastream/PeerConnection.idl	2012-02-08 09:51:14 UTC (rev 107053)
+++ trunk/Source/WebCore/mediastream/PeerConnection.idl	2012-02-08 09:52:17 UTC (rev 107054)
@@ -58,6 +58,7 @@
         attribute EventListener onconnecting;
         attribute EventListener onopen;
         attribute EventListener onmessage;
+        attribute EventListener onstatechange;
         attribute EventListener onaddstream;
         attribute EventListener onremovestream;
 

Modified: trunk/Source/WebCore/platform/mediastream/PeerConnectionHandlerClient.h (107053 => 107054)


--- trunk/Source/WebCore/platform/mediastream/PeerConnectionHandlerClient.h	2012-02-08 09:51:14 UTC (rev 107053)
+++ trunk/Source/WebCore/platform/mediastream/PeerConnectionHandlerClient.h	2012-02-08 09:52:17 UTC (rev 107054)
@@ -42,6 +42,14 @@
 
 class PeerConnectionHandlerClient {
 public:
+    // Name and values of the enum must match the corressponding constants in the PeerConnection.idl file.
+    enum ReadyState {
+        NEW = 0,
+        NEGOTIATING = 1,
+        ACTIVE = 2,
+        CLOSED = 3
+    };
+
     virtual ~PeerConnectionHandlerClient() { }
 
     virtual void didCompleteICEProcessing() = 0;
@@ -49,6 +57,7 @@
     virtual void didReceiveDataStreamMessage(const char* data, size_t length) = 0;
     virtual void didAddRemoteStream(PassRefPtr<MediaStreamDescriptor>) = 0;
     virtual void didRemoveRemoteStream(MediaStreamDescriptor*) = 0;
+    virtual void didChangeState(ReadyState) = 0;
 };
 
 } // namespace WebCore
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to