Changeset 128166 in webkit


Ignore:
Timestamp:
Sep 11, 2012 3:29:23 AM (12 years ago)
Author:
tommyw@google.com
Message:

MediaStream API: add RTCPeerConnection::onnegotiationneeded
https://bugs.webkit.org/show_bug.cgi?id=96097

Reviewed by Adam Barth.

Source/Platform:

  • chromium/public/WebRTCPeerConnectionHandlerClient.h:

(WebRTCPeerConnectionHandlerClient):

Source/WebCore:

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):

Tools:

  • DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp:

(MockWebRTCPeerConnectionHandler::addStream):
(MockWebRTCPeerConnectionHandler::removeStream):

LayoutTests:

  • fast/mediastream/RTCPeerConnection-onnegotiationneeded-expected.txt: Added.
  • fast/mediastream/RTCPeerConnection-onnegotiationneeded.html: Added.
Location:
trunk
Files:
2 added
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r128157 r128166  
     12012-09-11  Tommy Widenflycht  <tommyw@google.com>
     2
     3        MediaStream API: add RTCPeerConnection::onnegotiationneeded
     4        https://bugs.webkit.org/show_bug.cgi?id=96097
     5
     6        Reviewed by Adam Barth.
     7
     8        * fast/mediastream/RTCPeerConnection-onnegotiationneeded-expected.txt: Added.
     9        * fast/mediastream/RTCPeerConnection-onnegotiationneeded.html: Added.
     10
    1112012-09-11  Christophe Dumez  <christophe.dumez@intel.com>
    212
  • trunk/Source/Platform/ChangeLog

    r128082 r128166  
     12012-09-11  Tommy Widenflycht  <tommyw@google.com>
     2
     3        MediaStream API: add RTCPeerConnection::onnegotiationneeded
     4        https://bugs.webkit.org/show_bug.cgi?id=96097
     5
     6        Reviewed by Adam Barth.
     7
     8        * chromium/public/WebRTCPeerConnectionHandlerClient.h:
     9        (WebRTCPeerConnectionHandlerClient):
     10
    1112012-09-10  Adrienne Walker  <enne@google.com>
    212
  • trunk/Source/Platform/chromium/public/WebRTCPeerConnectionHandlerClient.h

    r128064 r128166  
    5959    virtual ~WebRTCPeerConnectionHandlerClient() { }
    6060
     61    virtual void negotiationNeeded() = 0;
    6162    virtual void didGenerateICECandidate(const WebRTCICECandidate&) = 0;
    6263    virtual void didChangeReadyState(ReadyState) = 0;
  • trunk/Source/WebCore/ChangeLog

    r128165 r128166  
     12012-09-11  Tommy Widenflycht  <tommyw@google.com>
     2
     3        MediaStream API: add RTCPeerConnection::onnegotiationneeded
     4        https://bugs.webkit.org/show_bug.cgi?id=96097
     5
     6        Reviewed by Adam Barth.
     7
     8        This patch adds the last callback to RTCPeerConnection: onnegotiationneeded.
     9        This is called whenever the state in the RTCPeerConnection changes and that
     10        change needs to be sent to the other side.
     11
     12        Test: fast/mediastream/RTCPeerConnection-onnegotiationneeded.html
     13
     14        * Modules/mediastream/RTCPeerConnection.cpp:
     15        (WebCore::RTCPeerConnection::negotiationNeeded):
     16        (WebCore):
     17        * Modules/mediastream/RTCPeerConnection.h:
     18        (RTCPeerConnection):
     19        * Modules/mediastream/RTCPeerConnection.idl:
     20        * dom/EventNames.h:
     21        (WebCore):
     22        * platform/mediastream/RTCPeerConnectionHandlerClient.h:
     23        (RTCPeerConnectionHandlerClient):
     24        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
     25        (WebCore::RTCPeerConnectionHandlerChromium::negotiationNeeded):
     26        (WebCore):
     27        * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
     28        (RTCPeerConnectionHandlerChromium):
     29
    1302012-09-11  Kent Tamura  <tkent@chromium.org>
    231
  • trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp

    r127906 r128166  
    392392}
    393393
     394void RTCPeerConnection::negotiationNeeded()
     395{
     396    dispatchEvent(Event::create(eventNames().negotationneededEvent, false, false));
     397}
     398
    394399void RTCPeerConnection::didGenerateIceCandidate(PassRefPtr<RTCIceCandidateDescriptor> iceCandidateDescriptor)
    395400{
  • trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.h

    r127906 r128166  
    8787    void close(ExceptionCode&);
    8888
     89    DEFINE_ATTRIBUTE_EVENT_LISTENER(negotationneeded);
    8990    DEFINE_ATTRIBUTE_EVENT_LISTENER(icecandidate);
    9091    DEFINE_ATTRIBUTE_EVENT_LISTENER(open);
     
    9596
    9697    // RTCPeerConnectionHandlerClient
     98    virtual void negotiationNeeded() OVERRIDE;
    9799    virtual void didGenerateIceCandidate(PassRefPtr<RTCIceCandidateDescriptor>) OVERRIDE;
    98100    virtual void didChangeReadyState(ReadyState) OVERRIDE;
  • trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.idl

    r127906 r128166  
    7676            raises(DOMException);
    7777
     78        attribute EventListener onnegotationneeded;
    7879        attribute EventListener onicecandidate;
    7980        attribute EventListener onopen;
  • trunk/Source/WebCore/dom/EventNames.h

    r127425 r128166  
    230230    macro(icechange) \
    231231    macro(icecandidate) \
     232    macro(negotationneeded) \
    232233    \
    233234    macro(show) \
  • trunk/Source/WebCore/platform/mediastream/RTCPeerConnectionHandlerClient.h

    r127425 r128166  
    6464    virtual ~RTCPeerConnectionHandlerClient() { }
    6565
     66    virtual void negotiationNeeded() = 0;
    6667    virtual void didGenerateIceCandidate(PassRefPtr<RTCIceCandidateDescriptor>) = 0;
    6768    virtual void didChangeReadyState(ReadyState) = 0;
  • trunk/Source/WebCore/platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp

    r128064 r128166  
    165165}
    166166
     167void RTCPeerConnectionHandlerChromium::negotiationNeeded()
     168{
     169    m_client->negotiationNeeded();
     170}
     171
    167172void RTCPeerConnectionHandlerChromium::didGenerateICECandidate(const WebKit::WebRTCICECandidate& iceCandidate)
    168173{
  • trunk/Source/WebCore/platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h

    r128064 r128166  
    6868
    6969    // WebKit::WebRTCPeerConnectionHandlerClient implementation.
     70    virtual void negotiationNeeded() OVERRIDE;
    7071    virtual void didGenerateICECandidate(const WebKit::WebRTCICECandidate&) OVERRIDE;
    7172    virtual void didChangeReadyState(WebKit::WebRTCPeerConnectionHandlerClient::ReadyState) OVERRIDE;
  • trunk/Tools/ChangeLog

    r128164 r128166  
     12012-09-11  Tommy Widenflycht  <tommyw@google.com>
     2
     3        MediaStream API: add RTCPeerConnection::onnegotiationneeded
     4        https://bugs.webkit.org/show_bug.cgi?id=96097
     5
     6        Reviewed by Adam Barth.
     7
     8        * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp:
     9        (MockWebRTCPeerConnectionHandler::addStream):
     10        (MockWebRTCPeerConnectionHandler::removeStream):
     11
    1122012-09-11  Peter Beverloo  <peter@chromium.org>
    213
  • trunk/Tools/DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp

    r128064 r128166  
    214214{
    215215    m_client->didAddRemoteStream(stream);
     216    m_client->negotiationNeeded();
    216217    return true;
    217218}
     
    220221{
    221222    m_client->didRemoveRemoteStream(stream);
     223    m_client->negotiationNeeded();
    222224}
    223225
Note: See TracChangeset for help on using the changeset viewer.