Skip to content
  • commit-queue@webkit.org's avatar
    [MediaStream] Firing negotiationneeded event upon track add/remove on MediaStream · c0b63ec5
    commit-queue@webkit.org authored
    https://bugs.webkit.org/show_bug.cgi?id=125243
    
    Patch by Thiago de Barros Lacerda <thiago.lacerda@openbossa.org> on 2013-12-05
    Reviewed by Eric Carlson.
    
    Spec states that: In particular, if an RTCPeerConnection object is consuming a MediaStream on which a track is
    added, by, e.g., the addTrack() method being invoked, the RTCPeerConnection object must fire the
    "negotiationneeded" event. Removal of media components must also trigger "negotiationneeded".
    
    Source/WebCore:
    
    Existing tests updated.
    
    * Modules/mediastream/MediaStream.cpp:
    (WebCore::MediaStream::addTrack):
    (WebCore::MediaStream::removeTrack):
    (WebCore::MediaStream::addObserver):
    (WebCore::MediaStream::removeObserver):
    * Modules/mediastream/MediaStream.h:
    * Modules/mediastream/RTCPeerConnection.cpp:
    (WebCore::RTCPeerConnection::~RTCPeerConnection):
    (WebCore::RTCPeerConnection::addStream):
    (WebCore::RTCPeerConnection::removeStream):
    (WebCore::RTCPeerConnection::didAddOrRemoveTrack):
    * Modules/mediastream/RTCPeerConnection.h:
    * platform/mock/RTCPeerConnectionHandlerMock.cpp:
    (WebCore::RTCPeerConnectionHandlerMock::addStream):
    
    LayoutTests:
    
    * fast/mediastream/RTCPeerConnection-AddRemoveStream-expected.txt:
    * fast/mediastream/RTCPeerConnection-AddRemoveStream.html:
    * fast/mediastream/RTCPeerConnection-onnegotiationneeded-expected.txt:
    * fast/mediastream/RTCPeerConnection-onnegotiationneeded.html:
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160181 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    c0b63ec5