Diff
Modified: trunk/LayoutTests/ChangeLog (128165 => 128166)
--- trunk/LayoutTests/ChangeLog 2012-09-11 10:11:59 UTC (rev 128165)
+++ trunk/LayoutTests/ChangeLog 2012-09-11 10:29:23 UTC (rev 128166)
@@ -1,3 +1,13 @@
+2012-09-11 Tommy Widenflycht <[email protected]>
+
+ MediaStream API: add RTCPeerConnection::onnegotiationneeded
+ https://bugs.webkit.org/show_bug.cgi?id=96097
+
+ Reviewed by Adam Barth.
+
+ * fast/mediastream/RTCPeerConnection-onnegotiationneeded-expected.txt: Added.
+ * fast/mediastream/RTCPeerConnection-onnegotiationneeded.html: Added.
+
2012-09-11 Christophe Dumez <[email protected]>
WTR needs an implementation of applicationCacheDiskUsageForOrigin
Added: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-onnegotiationneeded-expected.txt (0 => 128166)
--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-onnegotiationneeded-expected.txt (rev 0)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-onnegotiationneeded-expected.txt 2012-09-11 10:29:23 UTC (rev 128166)
@@ -0,0 +1,11 @@
+Tests RTCPeerConnection onnegotiationneeded.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS Got a stream.
+PASS onNegotationNeeded was called.
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Added: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-onnegotiationneeded.html (0 => 128166)
--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-onnegotiationneeded.html (rev 0)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-onnegotiationneeded.html 2012-09-11 10:29:23 UTC (rev 128166)
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<script src=""
+</head>
+<body>
+<script>
+description("Tests RTCPeerConnection onnegotiationneeded.");
+
+var stream = null;
+var pc = null;
+
+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 onNegotationNeeded(event) {
+ testPassed('onNegotationNeeded was called.');
+
+ finishJSTest();
+}
+
+function gotStream(s) {
+ testPassed('Got a stream.');
+ stream = s;
+
+ pc = new webkitRTCPeerConnection(null, null);
+ pc._onnegotationneeded_ = onNegotationNeeded;
+
+ pc.addStream(stream);
+}
+
+getUserMedia({audio:true, video:true}, gotStream);
+
+window.jsTestIsAsync = true;
+window.successfullyParsed = true;
+</script>
+<script src=""
+</body>
+</html>
Modified: trunk/Source/Platform/ChangeLog (128165 => 128166)
--- trunk/Source/Platform/ChangeLog 2012-09-11 10:11:59 UTC (rev 128165)
+++ trunk/Source/Platform/ChangeLog 2012-09-11 10:29:23 UTC (rev 128166)
@@ -1,3 +1,13 @@
+2012-09-11 Tommy Widenflycht <[email protected]>
+
+ MediaStream API: add RTCPeerConnection::onnegotiationneeded
+ https://bugs.webkit.org/show_bug.cgi?id=96097
+
+ Reviewed by Adam Barth.
+
+ * chromium/public/WebRTCPeerConnectionHandlerClient.h:
+ (WebRTCPeerConnectionHandlerClient):
+
2012-09-10 Adrienne Walker <[email protected]>
[chromium] Fix deadlock between WebMediaPlayerClientImpl dtor and PutCurrentFrame
Modified: trunk/Source/Platform/chromium/public/WebRTCPeerConnectionHandlerClient.h (128165 => 128166)
--- trunk/Source/Platform/chromium/public/WebRTCPeerConnectionHandlerClient.h 2012-09-11 10:11:59 UTC (rev 128165)
+++ trunk/Source/Platform/chromium/public/WebRTCPeerConnectionHandlerClient.h 2012-09-11 10:29:23 UTC (rev 128166)
@@ -58,6 +58,7 @@
virtual ~WebRTCPeerConnectionHandlerClient() { }
+ virtual void negotiationNeeded() = 0;
virtual void didGenerateICECandidate(const WebRTCICECandidate&) = 0;
virtual void didChangeReadyState(ReadyState) = 0;
virtual void didChangeICEState(ICEState) = 0;
Modified: trunk/Source/WebCore/ChangeLog (128165 => 128166)
--- trunk/Source/WebCore/ChangeLog 2012-09-11 10:11:59 UTC (rev 128165)
+++ trunk/Source/WebCore/ChangeLog 2012-09-11 10:29:23 UTC (rev 128166)
@@ -1,3 +1,32 @@
+2012-09-11 Tommy Widenflycht <[email protected]>
+
+ MediaStream API: add RTCPeerConnection::onnegotiationneeded
+ https://bugs.webkit.org/show_bug.cgi?id=96097
+
+ Reviewed by Adam Barth.
+
+ This patch adds the last callback to RTCPeerConnection: onnegotiationneeded.
+ This is called whenever the state in the RTCPeerConnection changes and that
+ change needs to be sent to the other side.
+
+ Test: fast/mediastream/RTCPeerConnection-onnegotiationneeded.html
+
+ * Modules/mediastream/RTCPeerConnection.cpp:
+ (WebCore::RTCPeerConnection::negotiationNeeded):
+ (WebCore):
+ * Modules/mediastream/RTCPeerConnection.h:
+ (RTCPeerConnection):
+ * Modules/mediastream/RTCPeerConnection.idl:
+ * dom/EventNames.h:
+ (WebCore):
+ * platform/mediastream/RTCPeerConnectionHandlerClient.h:
+ (RTCPeerConnectionHandlerClient):
+ * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
+ (WebCore::RTCPeerConnectionHandlerChromium::negotiationNeeded):
+ (WebCore):
+ * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
+ (RTCPeerConnectionHandlerChromium):
+
2012-09-11 Kent Tamura <[email protected]>
Sort an Xcode project file.
Modified: trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp (128165 => 128166)
--- trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp 2012-09-11 10:11:59 UTC (rev 128165)
+++ trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp 2012-09-11 10:29:23 UTC (rev 128166)
@@ -391,6 +391,11 @@
stop();
}
+void RTCPeerConnection::negotiationNeeded()
+{
+ dispatchEvent(Event::create(eventNames().negotationneededEvent, false, false));
+}
+
void RTCPeerConnection::didGenerateIceCandidate(PassRefPtr<RTCIceCandidateDescriptor> iceCandidateDescriptor)
{
ASSERT(scriptExecutionContext()->isContextThread());
Modified: trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.h (128165 => 128166)
--- trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.h 2012-09-11 10:11:59 UTC (rev 128165)
+++ trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.h 2012-09-11 10:29:23 UTC (rev 128166)
@@ -86,6 +86,7 @@
void close(ExceptionCode&);
+ DEFINE_ATTRIBUTE_EVENT_LISTENER(negotationneeded);
DEFINE_ATTRIBUTE_EVENT_LISTENER(icecandidate);
DEFINE_ATTRIBUTE_EVENT_LISTENER(open);
DEFINE_ATTRIBUTE_EVENT_LISTENER(statechange);
@@ -94,6 +95,7 @@
DEFINE_ATTRIBUTE_EVENT_LISTENER(icechange);
// RTCPeerConnectionHandlerClient
+ virtual void negotiationNeeded() OVERRIDE;
virtual void didGenerateIceCandidate(PassRefPtr<RTCIceCandidateDescriptor>) OVERRIDE;
virtual void didChangeReadyState(ReadyState) OVERRIDE;
virtual void didChangeIceState(IceState) OVERRIDE;
Modified: trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.idl (128165 => 128166)
--- trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.idl 2012-09-11 10:11:59 UTC (rev 128165)
+++ trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.idl 2012-09-11 10:29:23 UTC (rev 128166)
@@ -75,6 +75,7 @@
void close()
raises(DOMException);
+ attribute EventListener onnegotationneeded;
attribute EventListener onicecandidate;
attribute EventListener onopen;
attribute EventListener onstatechange;
Modified: trunk/Source/WebCore/dom/EventNames.h (128165 => 128166)
--- trunk/Source/WebCore/dom/EventNames.h 2012-09-11 10:11:59 UTC (rev 128165)
+++ trunk/Source/WebCore/dom/EventNames.h 2012-09-11 10:29:23 UTC (rev 128166)
@@ -229,6 +229,7 @@
macro(unmute) \
macro(icechange) \
macro(icecandidate) \
+ macro(negotationneeded) \
\
macro(show) \
\
Modified: trunk/Source/WebCore/platform/mediastream/RTCPeerConnectionHandlerClient.h (128165 => 128166)
--- trunk/Source/WebCore/platform/mediastream/RTCPeerConnectionHandlerClient.h 2012-09-11 10:11:59 UTC (rev 128165)
+++ trunk/Source/WebCore/platform/mediastream/RTCPeerConnectionHandlerClient.h 2012-09-11 10:29:23 UTC (rev 128166)
@@ -63,6 +63,7 @@
virtual ~RTCPeerConnectionHandlerClient() { }
+ virtual void negotiationNeeded() = 0;
virtual void didGenerateIceCandidate(PassRefPtr<RTCIceCandidateDescriptor>) = 0;
virtual void didChangeReadyState(ReadyState) = 0;
virtual void didChangeIceState(IceState) = 0;
Modified: trunk/Source/WebCore/platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp (128165 => 128166)
--- trunk/Source/WebCore/platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp 2012-09-11 10:11:59 UTC (rev 128165)
+++ trunk/Source/WebCore/platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp 2012-09-11 10:29:23 UTC (rev 128166)
@@ -164,6 +164,11 @@
m_webHandler->stop();
}
+void RTCPeerConnectionHandlerChromium::negotiationNeeded()
+{
+ m_client->negotiationNeeded();
+}
+
void RTCPeerConnectionHandlerChromium::didGenerateICECandidate(const WebKit::WebRTCICECandidate& iceCandidate)
{
m_client->didGenerateIceCandidate(iceCandidate);
Modified: trunk/Source/WebCore/platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h (128165 => 128166)
--- trunk/Source/WebCore/platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h 2012-09-11 10:11:59 UTC (rev 128165)
+++ trunk/Source/WebCore/platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h 2012-09-11 10:29:23 UTC (rev 128166)
@@ -67,6 +67,7 @@
virtual void stop() OVERRIDE;
// WebKit::WebRTCPeerConnectionHandlerClient implementation.
+ virtual void negotiationNeeded() OVERRIDE;
virtual void didGenerateICECandidate(const WebKit::WebRTCICECandidate&) OVERRIDE;
virtual void didChangeReadyState(WebKit::WebRTCPeerConnectionHandlerClient::ReadyState) OVERRIDE;
virtual void didChangeICEState(WebKit::WebRTCPeerConnectionHandlerClient::ICEState) OVERRIDE;
Modified: trunk/Tools/ChangeLog (128165 => 128166)
--- trunk/Tools/ChangeLog 2012-09-11 10:11:59 UTC (rev 128165)
+++ trunk/Tools/ChangeLog 2012-09-11 10:29:23 UTC (rev 128166)
@@ -1,3 +1,14 @@
+2012-09-11 Tommy Widenflycht <[email protected]>
+
+ MediaStream API: add RTCPeerConnection::onnegotiationneeded
+ https://bugs.webkit.org/show_bug.cgi?id=96097
+
+ Reviewed by Adam Barth.
+
+ * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp:
+ (MockWebRTCPeerConnectionHandler::addStream):
+ (MockWebRTCPeerConnectionHandler::removeStream):
+
2012-09-11 Peter Beverloo <[email protected]>
Recognize the "--chromium-android" argument in run-webkit-tests
Modified: trunk/Tools/DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp (128165 => 128166)
--- trunk/Tools/DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp 2012-09-11 10:11:59 UTC (rev 128165)
+++ trunk/Tools/DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp 2012-09-11 10:29:23 UTC (rev 128166)
@@ -213,12 +213,14 @@
bool MockWebRTCPeerConnectionHandler::addStream(const WebMediaStreamDescriptor& stream, const WebMediaConstraints&)
{
m_client->didAddRemoteStream(stream);
+ m_client->negotiationNeeded();
return true;
}
void MockWebRTCPeerConnectionHandler::removeStream(const WebMediaStreamDescriptor& stream)
{
m_client->didRemoveRemoteStream(stream);
+ m_client->negotiationNeeded();
}
void MockWebRTCPeerConnectionHandler::stop()