Changeset 155954 in webkit


Ignore:
Timestamp:
Sep 17, 2013 7:52:37 AM (11 years ago)
Author:
eric.carlson@apple.com
Message:

MediaStream API: Adding an async RTCPeerConnection::addIceCandidate
https://bugs.webkit.org/show_bug.cgi?id=121403

Source/WebCore:

Merged from https://chromium.googlesource.com/chromium/blink/+/5bd81fda88d48dd2780832246e7d1ab973ee7a1d

Reviewed by Darin Adler.

No new tests, updated RTCPeerConnection-ice.html.

  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::addIceCandidate): Add success and error callbacks.

  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/mediastream/RTCPeerConnection.idl:
  • platform/mediastream/RTCPeerConnectionHandler.h: Changed addIceCandidate signature.
  • platform/mediastream/RTCVoidRequest.h: Removed ExtraData, it is unnecessary.

LayoutTests:

Reviewed by Darin Adler.

  • fast/mediastream/RTCPeerConnection-ice-expected.txt:
  • fast/mediastream/RTCPeerConnection-ice.html:
Location:
trunk
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r155947 r155954  
     12013-09-17  Eric Carlson  <eric.carlson@apple.com>
     2
     3        MediaStream API: Adding an async RTCPeerConnection::addIceCandidate
     4        https://bugs.webkit.org/show_bug.cgi?id=121403
     5
     6        Reviewed by Darin Adler.
     7
     8        * fast/mediastream/RTCPeerConnection-ice-expected.txt:
     9        * fast/mediastream/RTCPeerConnection-ice.html:
     10
    1112013-09-17  Mihnea Ovidenie  <mihnea@adobe.com>
    212
  • trunk/LayoutTests/fast/mediastream/RTCPeerConnection-ice-expected.txt

    r140310 r155954  
    66PASS pc = new webkitRTCPeerConnection(null, null); did not throw exception.
    77PASS iceConnectionState is completed
    8 PASS onIceCandidate was called.
    9 PASS event.candidate.candidate is "nano nano"
     8PASS pc.addIceCandidate(null, null, null); threw exception TypeError: Type error.
     9PASS pc.addIceCandidate(iceCandidate, null, null); threw exception TypeError: Type error.
     10PASS pc.addIceCandidate(iceCandidate, addIceCandidateSuccess, null); threw exception TypeError: Type error.
     11PASS pc.addIceCandidate(iceCandidate, addIceCandidateSuccess, addIceCandidateFailure); did not throw exception.
     12PASS addIceCandidateSuccess was called.
    1013PASS iceConnectionState is closed.
    1114PASS successfullyParsed is true
  • trunk/LayoutTests/fast/mediastream/RTCPeerConnection-ice.html

    r155270 r155954  
    99
    1010var pc = null;
     11var iceCandidate = null;
    1112
    1213function onIceChange2()
     
    1819}
    1920
    20 function onIceCandidate(event)
     21function addIceCandidateSuccess()
    2122{
    22     testPassed("onIceCandidate was called.");
    23     shouldBe('event.candidate.candidate', '"nano nano"');
    24 
     23    testPassed("addIceCandidateSuccess was called.");
    2524    pc.oniceconnectionstatechange = onIceChange2;
    2625    pc.close();
     26}
     27
     28function addIceCandidateFailure()
     29{
     30    testFailed("addIceCandidateFailue was called.");
     31    finishJSTest();
    2732}
    2833
     
    3136    if (pc.iceConnectionState === "completed") {
    3237        testPassed("iceConnectionState is completed");
    33         pc.onicecandidate = onIceCandidate;
    34         pc.addIceCandidate(new RTCIceCandidate({candidate:"nano nano"}));
     38        iceCandidate = new RTCIceCandidate({candidate:"nano nano"});
     39        shouldThrow('pc.addIceCandidate(null, null, null);');
     40        shouldThrow('pc.addIceCandidate(iceCandidate, null, null);');
     41        shouldThrow('pc.addIceCandidate(iceCandidate, addIceCandidateSuccess, null);');
     42        shouldNotThrow('pc.addIceCandidate(iceCandidate, addIceCandidateSuccess, addIceCandidateFailure);');
    3543    }
    3644}
  • trunk/Source/WebCore/ChangeLog

    r155952 r155954  
     12013-09-17  Eric Carlson  <eric.carlson@apple.com>
     2
     3        MediaStream API: Adding an async RTCPeerConnection::addIceCandidate
     4        https://bugs.webkit.org/show_bug.cgi?id=121403
     5
     6        Merged from https://chromium.googlesource.com/chromium/blink/+/5bd81fda88d48dd2780832246e7d1ab973ee7a1d
     7
     8        Reviewed by Darin Adler.
     9
     10        No new tests, updated RTCPeerConnection-ice.html.
     11
     12        * Modules/mediastream/RTCPeerConnection.cpp:
     13        (WebCore::RTCPeerConnection::addIceCandidate): Add success and error callbacks.
     14        * Modules/mediastream/RTCPeerConnection.h:
     15        * Modules/mediastream/RTCPeerConnection.idl:
     16
     17        * platform/mediastream/RTCPeerConnectionHandler.h: Changed addIceCandidate signature.
     18
     19        * platform/mediastream/RTCVoidRequest.h: Removed ExtraData, it is unnecessary.
     20
    1212013-09-17  Carlos Garcia Campos  <cgarcia@igalia.com>
    222
  • trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp

    r155794 r155954  
    285285}
    286286
    287 void RTCPeerConnection::addIceCandidate(RTCIceCandidate* iceCandidate, ExceptionCode& ec)
    288 {
    289     if (m_signalingState == SignalingStateClosed) {
    290         ec = INVALID_STATE_ERR;
    291         return;
    292     }
    293 
    294     if (!iceCandidate) {
    295         ec = TYPE_MISMATCH_ERR;
    296         return;
    297     }
    298 
    299     bool valid = m_peerHandler->addIceCandidate(iceCandidate->descriptor());
    300     if (!valid)
     287void RTCPeerConnection::addIceCandidate(RTCIceCandidate* iceCandidate, PassRefPtr<VoidCallback> successCallback, PassRefPtr<RTCErrorCallback> errorCallback, ExceptionCode& ec)
     288{
     289    if (m_signalingState == SignalingStateClosed) {
     290        ec = INVALID_STATE_ERR;
     291        return;
     292    }
     293
     294    if (!iceCandidate || !successCallback || !errorCallback) {
     295        ec = TYPE_MISMATCH_ERR;
     296        return;
     297    }
     298
     299    RefPtr<RTCVoidRequestImpl> request = RTCVoidRequestImpl::create(scriptExecutionContext(), successCallback, errorCallback);
     300
     301    bool implemented = m_peerHandler->addIceCandidate(request.release(), iceCandidate->descriptor());
     302    if (!implemented)
    301303        ec = SYNTAX_ERR;
    302304}
  • trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.h

    r155478 r155954  
    7878    void updateIce(const Dictionary& rtcConfiguration, const Dictionary& mediaConstraints, ExceptionCode&);
    7979
    80     void addIceCandidate(RTCIceCandidate*, ExceptionCode&);
     80    void addIceCandidate(RTCIceCandidate*, PassRefPtr<VoidCallback>, PassRefPtr<RTCErrorCallback>, ExceptionCode&);
    8181
    8282    String iceGatheringState() const;
  • trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.idl

    r151495 r155954  
    5252    [RaisesException] void updateIce(optional Dictionary configuration, optional Dictionary mediaConstraints);
    5353
    54     [RaisesException] void addIceCandidate(RTCIceCandidate candidate);
     54    [RaisesException] void addIceCandidate(RTCIceCandidate candidate, VoidCallback successCallback, RTCErrorCallback failureCallback);
    5555
    5656    readonly attribute DOMString iceGatheringState;
  • trunk/Source/WebCore/platform/mediastream/RTCPeerConnectionHandler.h

    r155794 r155954  
    8282    virtual PassRefPtr<RTCSessionDescriptionDescriptor> remoteDescription() = 0;
    8383    virtual bool updateIce(PassRefPtr<RTCConfiguration>, PassRefPtr<MediaConstraints>) = 0;
    84     virtual bool addIceCandidate(PassRefPtr<RTCIceCandidateDescriptor>) = 0;
     84    virtual bool addIceCandidate(PassRefPtr<RTCVoidRequest>, PassRefPtr<RTCIceCandidateDescriptor>) = 0;
    8585    virtual bool addStream(PassRefPtr<MediaStreamDescriptor>, PassRefPtr<MediaConstraints>) = 0;
    8686    virtual void removeStream(PassRefPtr<MediaStreamDescriptor>) = 0;
  • trunk/Source/WebCore/platform/mediastream/RTCVoidRequest.h

    r127766 r155954  
    4343class RTCVoidRequest : public RefCounted<RTCVoidRequest> {
    4444public:
    45     class ExtraData : public RefCounted<ExtraData> {
    46     public:
    47         virtual ~ExtraData() { }
    48     };
    49 
    5045    virtual ~RTCVoidRequest() { }
    5146
     
    5348    virtual void requestFailed(const String& error) = 0;
    5449
    55     PassRefPtr<ExtraData> extraData() const { return m_extraData; }
    56     void setExtraData(PassRefPtr<ExtraData> extraData) { m_extraData = extraData; }
    57 
    5850protected:
    5951    RTCVoidRequest() { }
    60 
    61 private:
    62     RefPtr<ExtraData> m_extraData;
    6352};
    6453
Note: See TracChangeset for help on using the changeset viewer.