Changeset 282197 in webkit


Ignore:
Timestamp:
Sep 9, 2021 12:13:28 AM (10 months ago)
Author:
youenn@apple.com
Message:

Add support for RTCSctpTransport
https://bugs.webkit.org/show_bug.cgi?id=229292
<rdar://problem/82394152>

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/RTCDataChannel-send-expected.txt:
  • web-platform-tests/webrtc/RTCIceTransport-expected.txt:
  • web-platform-tests/webrtc/RTCPeerConnection-connectionState.https-expected.txt:
  • web-platform-tests/webrtc/RTCRtpSender-transport.https-expected.txt:
  • web-platform-tests/webrtc/RTCSctpTransport-constructor-expected.txt:
  • web-platform-tests/webrtc/RTCSctpTransport-events-expected.txt:
  • web-platform-tests/webrtc/RTCSctpTransport-maxChannels-expected.txt:
  • web-platform-tests/webrtc/RTCSctpTransport-maxMessageSize-expected.txt:
  • web-platform-tests/webrtc/idlharness.https.window-expected.txt:

Source/ThirdParty/libwebrtc:

  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:

Source/WebCore:

Expose RTSctpTransport API and getter from the peer connection.
Implement event mechanism and getters.
Additional work will be needed to make ice transport objects consistent between SCTP and senders/receivers.
Covered by rebased tests.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::PeerConnectionBackend::setLocalDescriptionSucceeded):
(WebCore::PeerConnectionBackend::setRemoteDescriptionSucceeded):

  • Modules/mediastream/PeerConnectionBackend.h:
  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::updateSctpBackend):

  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/mediastream/RTCPeerConnection.idl:
  • Modules/mediastream/RTCSctpTransport.cpp: Added.

(WebCore::RTCSctpTransport::RTCSctpTransport):
(WebCore::RTCSctpTransport::~RTCSctpTransport):
(WebCore::RTCSctpTransport::stop):
(WebCore::RTCSctpTransport::virtualHasPendingActivity const):
(WebCore::RTCSctpTransport::onStateChanged):

  • Modules/mediastream/RTCSctpTransport.h: Added.
  • Modules/mediastream/RTCSctpTransport.idl: Added.
  • Modules/mediastream/RTCSctpTransportBackend.h: Added.

(WebCore::operator==):

  • Modules/mediastream/RTCSctpTransportState.h: Added.
  • Modules/mediastream/RTCSctpTransportState.idl: Added.
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::SctpTransportState::SctpTransportState):
(WebCore::SctpTransportState::createBackend):
(WebCore::LibWebRTCMediaEndpoint::setLocalSessionDescriptionSucceeded):
(WebCore::LibWebRTCMediaEndpoint::setLocalSessionDescriptionFailed):
(WebCore::LibWebRTCMediaEndpoint::setRemoteSessionDescriptionSucceeded):

  • Modules/mediastream/libwebrtc/LibWebRTCSctpTransportBackend.cpp: Added.

(WebCore::toRTCSctpTransportState):
(WebCore::LibWebRTCSctpTransportBackendObserver::LibWebRTCSctpTransportBackendObserver):
(WebCore::LibWebRTCSctpTransportBackendObserver::updateState):
(WebCore::LibWebRTCSctpTransportBackendObserver::start):
(WebCore::LibWebRTCSctpTransportBackendObserver::stop):
(WebCore::LibWebRTCSctpTransportBackendObserver::OnStateChange):
(WebCore::LibWebRTCSctpTransportBackend::LibWebRTCSctpTransportBackend):
(WebCore::LibWebRTCSctpTransportBackend::~LibWebRTCSctpTransportBackend):
(WebCore::LibWebRTCSctpTransportBackend::dtlsTransportBackend):
(WebCore::LibWebRTCSctpTransportBackend::registerClient):
(WebCore::LibWebRTCSctpTransportBackend::unregisterClient):

  • Modules/mediastream/libwebrtc/LibWebRTCSctpTransportBackend.h: Added.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • dom/EventTargetFactory.in:

LayoutTests:

  • webrtc/datachannel/dtls10.html:

We should now check for the RTCSctpTransport's RTCDtlsTransport state
to identify whether connection is successful or not.

Location:
trunk
Files:
8 added
32 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r282196 r282197  
     12021-09-09  Youenn Fablet  <youenn@apple.com>
     2
     3        Add support for RTCSctpTransport
     4        https://bugs.webkit.org/show_bug.cgi?id=229292
     5        <rdar://problem/82394152>
     6
     7        Reviewed by Eric Carlson.
     8
     9        * webrtc/datachannel/dtls10.html:
     10        We should now check for the RTCSctpTransport's RTCDtlsTransport state
     11        to identify whether connection is successful or not.
     12
    1132021-09-09  Jean-Yves Avenard  <jya@apple.com>
    214
  • trunk/LayoutTests/imported/w3c/ChangeLog

    r282195 r282197  
     12021-09-09  Youenn Fablet  <youenn@apple.com>
     2
     3        Add support for RTCSctpTransport
     4        https://bugs.webkit.org/show_bug.cgi?id=229292
     5        <rdar://problem/82394152>
     6
     7        Reviewed by Eric Carlson.
     8
     9        * web-platform-tests/webrtc/RTCDataChannel-send-expected.txt:
     10        * web-platform-tests/webrtc/RTCIceTransport-expected.txt:
     11        * web-platform-tests/webrtc/RTCPeerConnection-connectionState.https-expected.txt:
     12        * web-platform-tests/webrtc/RTCRtpSender-transport.https-expected.txt:
     13        * web-platform-tests/webrtc/RTCSctpTransport-constructor-expected.txt:
     14        * web-platform-tests/webrtc/RTCSctpTransport-events-expected.txt:
     15        * web-platform-tests/webrtc/RTCSctpTransport-maxChannels-expected.txt:
     16        * web-platform-tests/webrtc/RTCSctpTransport-maxMessageSize-expected.txt:
     17        * web-platform-tests/webrtc/idlharness.https.window-expected.txt:
     18
    1192021-09-07  Tim Nguyen  <ntim@apple.com>
    220
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCDataChannel-send-expected.txt

    r282067 r282197  
    1010FAIL Datachannel binaryType should receive message as Blob by default assert_equals: Expect initial binaryType value to be blob expected "blob" but got "arraybuffer"
    1111PASS Datachannel sending multiple messages with different types should succeed and be received
    12 FAIL Datachannel send() up to max size should succeed, above max size should fail promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'pc1.sctp.maxMessageSize')"
     12FAIL Datachannel send() up to max size should succeed, above max size should fail assert_throws_js: function "() => channel1.send(message)" did not throw
    1313PASS Negotiated datachannel should be able to send simple string and receive as string
    1414PASS Negotiated datachannel should be able to send unicode string and receive as unicode string
     
    2020FAIL Negotiated datachannel binaryType should receive message as Blob by default assert_equals: Expect initial binaryType value to be blob expected "blob" but got "arraybuffer"
    2121PASS Negotiated datachannel sending multiple messages with different types should succeed and be received
    22 FAIL Negotiated datachannel send() up to max size should succeed, above max size should fail promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'pc1.sctp.maxMessageSize')"
     22FAIL Negotiated datachannel send() up to max size should succeed, above max size should fail assert_throws_js: function "() => channel1.send(message)" did not throw
    2323
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCIceTransport-expected.txt

    r282067 r282197  
    11
    2 FAIL Two connected iceTransports should has matching local/remote candidates returned promise_test: Unhandled rejection with value: object "ReferenceError: Can't find variable: RTCSctpTransport"
    3 FAIL Unconnected iceTransport should have empty remote candidates and selected pair promise_test: Unhandled rejection with value: object "ReferenceError: Can't find variable: RTCSctpTransport"
     2FAIL Two connected iceTransports should has matching local/remote candidates returned assert_true: Expect RTCIceRole to be either controlling or controlled, found undefined expected true got false
     3FAIL Unconnected iceTransport should have empty remote candidates and selected pair promise_test: Unhandled rejection with value: object "TypeError: iceTransport.getRemoteCandidates is not a function. (In 'iceTransport.getRemoteCandidates()', 'iceTransport.getRemoteCandidates' is undefined)"
    44
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-connectionState.https-expected.txt

    r282067 r282197  
    33PASS Closing the connection should set connectionState to closed
    44PASS connection with one data channel should eventually have connected connection state
    5 FAIL connection with one data channel should eventually have transports in connected state undefined is not an object (evaluating 'sctpTransport.transport')
     5FAIL connection with one data channel should eventually have transports in connected state assert_equals: Expect DTLS transport to be in connected state expected "connected" but got "connecting"
    66FAIL connectionState remains new when not adding remote ice candidates assert_equals: expected "new" but got "checking"
    77PASS connectionState transitions to connected via connecting
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCRtpSender-transport.https-expected.txt

    r282067 r282197  
    33PASS RTCRtpSender/receiver.transport has a value when connected
    44PASS RTCRtpSender/receiver.transport at the right time, with bundle policy balanced
    5 FAIL RTCRtpSender/receiver/SCTP transport at the right time, with bundle policy balanced promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'caller.sctp.transport')"
     5PASS RTCRtpSender/receiver/SCTP transport at the right time, with bundle policy balanced
    66PASS RTCRtpSender/receiver.transport at the right time, with bundle policy max-bundle
    7 FAIL RTCRtpSender/receiver/SCTP transport at the right time, with bundle policy max-bundle promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'caller.sctp.transport')"
     7PASS RTCRtpSender/receiver/SCTP transport at the right time, with bundle policy max-bundle
    88PASS RTCRtpSender/receiver.transport at the right time, with bundle policy max-compat
    9 FAIL RTCRtpSender/receiver/SCTP transport at the right time, with bundle policy max-compat promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'caller.sctp.transport')"
     9PASS RTCRtpSender/receiver/SCTP transport at the right time, with bundle policy max-compat
    1010
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCSctpTransport-constructor-expected.txt

    r282067 r282197  
    11
    2 FAIL setRemoteDescription() with answer not containing data media should not initialize pc.sctp assert_equals: RTCSctpTransport must be null expected (object) null but got (undefined) undefined
    3 FAIL setLocalDescription() with answer not containing data media should not initialize pc.sctp assert_equals: RTCSctpTransport must be null expected (object) null but got (undefined) undefined
    4 FAIL setRemoteDescription() with answer containing data media should initialize pc.sctp assert_equals: RTCSctpTransport must be null expected (object) null but got (undefined) undefined
    5 FAIL setLocalDescription() with answer containing data media should initialize pc.sctp assert_equals: RTCSctpTransport must be null expected (object) null but got (undefined) undefined
     2PASS setRemoteDescription() with answer not containing data media should not initialize pc.sctp
     3PASS setLocalDescription() with answer not containing data media should not initialize pc.sctp
     4PASS setRemoteDescription() with answer containing data media should initialize pc.sctp
     5PASS setLocalDescription() with answer containing data media should initialize pc.sctp
    66
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCSctpTransport-events-expected.txt

    r282067 r282197  
    11
    2 Harness Error (FAIL), message = Unhandled rejection: undefined is not an object (evaluating 'transport.state')
     2PASS SctpTransport objects are created at appropriate times
     3PASS SctpTransport reaches connected and closed state
    34
    4 FAIL SctpTransport objects are created at appropriate times assert_equals: expected (undefined) undefined but got (object) null
    5 FAIL SctpTransport reaches connected and closed state promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'transport.state')"
    6 
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCSctpTransport-maxChannels-expected.txt

    r282067 r282197  
    11
    2 Harness Error (FAIL), message = Unhandled rejection: undefined is not an object (evaluating 'transport.state')
     2PASS An unconnected peerconnection must not have maxChannels set
     3PASS maxChannels gets instantiated after connecting
    34
    4 FAIL An unconnected peerconnection must not have maxChannels set assert_equals: RTCSctpTransport must be null expected (object) null but got (undefined) undefined
    5 FAIL maxChannels gets instantiated after connecting promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'pc1.sctp.maxChannels')"
    6 
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCSctpTransport-maxMessageSize-expected.txt

    r282067 r282197  
    11
    2 FAIL Determine the local side send limitation (canSendSize) by offering a max-message-size of 0 assert_equals: RTCSctpTransport must be null expected (object) null but got (undefined) undefined
    3 FAIL Remote offer SDP missing max-message-size attribute assert_not_equals: canSendSize needs to be determined got disallowed value null
    4 FAIL max-message-size with a (non-zero) value provided by the remote peer assert_not_equals: canSendSize needs to be determined got disallowed value null
    5 FAIL Renegotiate max-message-size with various values provided by the remote peer assert_not_equals: canSendSize needs to be determined got disallowed value null
    6 FAIL max-message-size with a (non-zero) value larger than canSendSize provided by the remote peer assert_not_equals: canSendSize needs to be determined got disallowed value null
     2PASS Determine the local side send limitation (canSendSize) by offering a max-message-size of 0
     3FAIL Remote offer SDP missing max-message-size attribute assert_equals: Missing SDP attribute and a non-zero canSendSize should give an maxMessageSize of min(65536, canSendSize) expected 65536 but got 1.7976931348623157e+308
     4FAIL max-message-size with a (non-zero) value provided by the remote peer assert_equals: maxMessageSize should be the value provided by the remote peer (as long as it is less than canSendSize) expected 1 but got 1.7976931348623157e+308
     5FAIL Renegotiate max-message-size with various values provided by the remote peer assert_equals: maxMessageSize should be the value provided by the remote peer (as long as it is less than canSendSize) expected 1 but got 1.7976931348623157e+308
     6FAIL max-message-size with a (non-zero) value larger than canSendSize provided by the remote peer promise_test: Unhandled rejection with value: object "SyntaxError: Invalid SCTP max message size."
    77
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/idlharness.https.window-expected.txt

    r282194 r282197  
    33PASS idl_test validation
    44PASS Test driver for asyncInitCertificate
    5 FAIL Test driver for asyncInitTransports assert_unreached: Failed to run asyncInitTransports: ReferenceError: Can't find variable: RTCSctpTransport Reached unreachable code
     5PASS Test driver for asyncInitTransports
    66PASS Test driver for asyncInitMediaStreamTrack
    77PASS Partial dictionary RTCOfferOptions: original dictionary defined
     
    6363PASS RTCPeerConnection interface: operation addTransceiver((MediaStreamTrack or DOMString), optional RTCRtpTransceiverInit)
    6464PASS RTCPeerConnection interface: attribute ontrack
    65 FAIL RTCPeerConnection interface: attribute sctp assert_true: The prototype object must have a property "sctp" expected true got false
     65PASS RTCPeerConnection interface: attribute sctp
    6666PASS RTCPeerConnection interface: operation createDataChannel(USVString, optional RTCDataChannelInit)
    6767PASS RTCPeerConnection interface: attribute ondatachannel
     
    124124PASS RTCPeerConnection interface: calling addTransceiver((MediaStreamTrack or DOMString), optional RTCRtpTransceiverInit) on new RTCPeerConnection() with too few arguments must throw TypeError
    125125PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "ontrack" with the proper type
    126 FAIL RTCPeerConnection interface: new RTCPeerConnection() must inherit property "sctp" with the proper type assert_inherits: property "sctp" not found in prototype chain
     126PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "sctp" with the proper type
    127127PASS RTCPeerConnection interface: new RTCPeerConnection() must inherit property "createDataChannel(USVString, optional RTCDataChannelInit)" with the proper type
    128128PASS RTCPeerConnection interface: calling createDataChannel(USVString, optional RTCDataChannelInit) on new RTCPeerConnection() with too few arguments must throw TypeError
     
    313313PASS RTCDtlsTransport interface: attribute onstatechange
    314314PASS RTCDtlsTransport interface: attribute onerror
    315 FAIL RTCDtlsTransport must be primary interface of idlTestObjects.dtlsTransport assert_equals: wrong typeof object expected "object" but got "undefined"
    316 FAIL Stringification of idlTestObjects.dtlsTransport assert_equals: wrong typeof object expected "object" but got "undefined"
    317 FAIL RTCDtlsTransport interface: idlTestObjects.dtlsTransport must inherit property "iceTransport" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
    318 FAIL RTCDtlsTransport interface: idlTestObjects.dtlsTransport must inherit property "state" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
    319 FAIL RTCDtlsTransport interface: idlTestObjects.dtlsTransport must inherit property "getRemoteCertificates()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
    320 FAIL RTCDtlsTransport interface: idlTestObjects.dtlsTransport must inherit property "onstatechange" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
    321 FAIL RTCDtlsTransport interface: idlTestObjects.dtlsTransport must inherit property "onerror" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
     315PASS RTCDtlsTransport must be primary interface of idlTestObjects.dtlsTransport
     316PASS Stringification of idlTestObjects.dtlsTransport
     317PASS RTCDtlsTransport interface: idlTestObjects.dtlsTransport must inherit property "iceTransport" with the proper type
     318PASS RTCDtlsTransport interface: idlTestObjects.dtlsTransport must inherit property "state" with the proper type
     319PASS RTCDtlsTransport interface: idlTestObjects.dtlsTransport must inherit property "getRemoteCertificates()" with the proper type
     320PASS RTCDtlsTransport interface: idlTestObjects.dtlsTransport must inherit property "onstatechange" with the proper type
     321PASS RTCDtlsTransport interface: idlTestObjects.dtlsTransport must inherit property "onerror" with the proper type
    322322PASS RTCIceTransport interface: existence and properties of interface object
    323323PASS RTCIceTransport interface object length
     
    338338PASS RTCIceTransport interface: attribute ongatheringstatechange
    339339FAIL RTCIceTransport interface: attribute onselectedcandidatepairchange assert_true: The prototype object must have a property "onselectedcandidatepairchange" expected true got false
    340 FAIL RTCIceTransport must be primary interface of idlTestObjects.iceTransport assert_equals: wrong typeof object expected "object" but got "undefined"
    341 FAIL Stringification of idlTestObjects.iceTransport assert_equals: wrong typeof object expected "object" but got "undefined"
    342 FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "role" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
    343 FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "component" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
    344 FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "state" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
    345 FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "gatheringState" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
    346 FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "getLocalCandidates()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
    347 FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "getRemoteCandidates()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
    348 FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "getSelectedCandidatePair()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
    349 FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "getLocalParameters()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
    350 FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "getRemoteParameters()" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
    351 FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "onstatechange" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
    352 FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "ongatheringstatechange" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
    353 FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "onselectedcandidatepairchange" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
     340PASS RTCIceTransport must be primary interface of idlTestObjects.iceTransport
     341PASS Stringification of idlTestObjects.iceTransport
     342FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "role" with the proper type assert_inherits: property "role" not found in prototype chain
     343FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "component" with the proper type assert_inherits: property "component" not found in prototype chain
     344PASS RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "state" with the proper type
     345PASS RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "gatheringState" with the proper type
     346FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "getLocalCandidates()" with the proper type assert_inherits: property "getLocalCandidates" not found in prototype chain
     347FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "getRemoteCandidates()" with the proper type assert_inherits: property "getRemoteCandidates" not found in prototype chain
     348FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "getSelectedCandidatePair()" with the proper type assert_inherits: property "getSelectedCandidatePair" not found in prototype chain
     349FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "getLocalParameters()" with the proper type assert_inherits: property "getLocalParameters" not found in prototype chain
     350FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "getRemoteParameters()" with the proper type assert_inherits: property "getRemoteParameters" not found in prototype chain
     351PASS RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "onstatechange" with the proper type
     352PASS RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "ongatheringstatechange" with the proper type
     353FAIL RTCIceTransport interface: idlTestObjects.iceTransport must inherit property "onselectedcandidatepairchange" with the proper type assert_inherits: property "onselectedcandidatepairchange" not found in prototype chain
    354354PASS RTCTrackEvent interface: existence and properties of interface object
    355355PASS RTCTrackEvent interface object length
     
    368368PASS RTCTrackEvent interface: initTrackEvent() must inherit property "streams" with the proper type
    369369PASS RTCTrackEvent interface: initTrackEvent() must inherit property "transceiver" with the proper type
    370 FAIL RTCSctpTransport interface: existence and properties of interface object assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing
    371 FAIL RTCSctpTransport interface object length assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing
    372 FAIL RTCSctpTransport interface object name assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing
    373 FAIL RTCSctpTransport interface: existence and properties of interface prototype object assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing
    374 FAIL RTCSctpTransport interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing
    375 FAIL RTCSctpTransport interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing
    376 FAIL RTCSctpTransport interface: attribute transport assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing
    377 FAIL RTCSctpTransport interface: attribute state assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing
    378 FAIL RTCSctpTransport interface: attribute maxMessageSize assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing
    379 FAIL RTCSctpTransport interface: attribute maxChannels assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing
    380 FAIL RTCSctpTransport interface: attribute onstatechange assert_own_property: self does not have own property "RTCSctpTransport" expected property "RTCSctpTransport" missing
    381 FAIL RTCSctpTransport must be primary interface of idlTestObjects.sctpTransport assert_equals: wrong typeof object expected "object" but got "undefined"
    382 FAIL Stringification of idlTestObjects.sctpTransport assert_equals: wrong typeof object expected "object" but got "undefined"
    383 FAIL RTCSctpTransport interface: idlTestObjects.sctpTransport must inherit property "transport" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
    384 FAIL RTCSctpTransport interface: idlTestObjects.sctpTransport must inherit property "state" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
    385 FAIL RTCSctpTransport interface: idlTestObjects.sctpTransport must inherit property "maxMessageSize" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
    386 FAIL RTCSctpTransport interface: idlTestObjects.sctpTransport must inherit property "maxChannels" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
    387 FAIL RTCSctpTransport interface: idlTestObjects.sctpTransport must inherit property "onstatechange" with the proper type assert_equals: wrong typeof object expected "object" but got "undefined"
     370PASS RTCSctpTransport interface: existence and properties of interface object
     371PASS RTCSctpTransport interface object length
     372PASS RTCSctpTransport interface object name
     373PASS RTCSctpTransport interface: existence and properties of interface prototype object
     374PASS RTCSctpTransport interface: existence and properties of interface prototype object's "constructor" property
     375PASS RTCSctpTransport interface: existence and properties of interface prototype object's @@unscopables property
     376PASS RTCSctpTransport interface: attribute transport
     377PASS RTCSctpTransport interface: attribute state
     378PASS RTCSctpTransport interface: attribute maxMessageSize
     379PASS RTCSctpTransport interface: attribute maxChannels
     380PASS RTCSctpTransport interface: attribute onstatechange
     381PASS RTCSctpTransport must be primary interface of idlTestObjects.sctpTransport
     382PASS Stringification of idlTestObjects.sctpTransport
     383PASS RTCSctpTransport interface: idlTestObjects.sctpTransport must inherit property "transport" with the proper type
     384PASS RTCSctpTransport interface: idlTestObjects.sctpTransport must inherit property "state" with the proper type
     385PASS RTCSctpTransport interface: idlTestObjects.sctpTransport must inherit property "maxMessageSize" with the proper type
     386PASS RTCSctpTransport interface: idlTestObjects.sctpTransport must inherit property "maxChannels" with the proper type
     387PASS RTCSctpTransport interface: idlTestObjects.sctpTransport must inherit property "onstatechange" with the proper type
    388388PASS RTCDataChannel interface: existence and properties of interface object
    389389PASS RTCDataChannel interface object length
  • trunk/LayoutTests/webrtc/datachannel/dtls10.html

    r282067 r282197  
    4949    });
    5050
     51    assert_not_equals(localConnection.sctp, null);
     52
    5153    let counter = 0;
    5254    while (++counter < 20) {
    53         if (localConnection.connectionState === "connected")
     55        if (localConnection.sctp.transport.state === "connected")
    5456           return;
    5557        await new Promise(resolve => setTimeout(resolve, 10));
     
    7072
    7173    await new Promise(resolve => setTimeout(resolve, 200));
    72     assert_not_equals(localConnection.connectionState, "connected");
     74    assert_not_equals(localConnection.sctp, null);
     75    assert_not_equals(localConnection.sctp.transport.state, "connected");
    7376}, "Verify regular clients cannot connect with DTLS1-only clients");
    7477    </script>
  • trunk/Source/ThirdParty/libwebrtc/ChangeLog

    r282067 r282197  
     12021-09-09  Youenn Fablet  <youenn@apple.com>
     2
     3        Add support for RTCSctpTransport
     4        https://bugs.webkit.org/show_bug.cgi?id=229292
     5        <rdar://problem/82394152>
     6
     7        Reviewed by Eric Carlson.
     8
     9        * Configurations/libwebrtc.iOS.exp:
     10        * Configurations/libwebrtc.iOSsim.exp:
     11        * Configurations/libwebrtc.mac.exp:
     12
    1132021-09-06  Commit Queue  <commit-queue@webkit.org>
    214
  • trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.iOS.exp

    r282067 r282197  
    326326__ZNK3rtc9IPAddress5IsNilEv
    327327__ZN3rtc12SSLCertChainD1Ev
     328__ZN6webrtc24SctpTransportInformationD1Ev
  • trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.iOSsim.exp

    r282067 r282197  
    326326__ZNK3rtc9IPAddress5IsNilEv
    327327__ZN3rtc12SSLCertChainD1Ev
     328__ZN6webrtc24SctpTransportInformationD1Ev
  • trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.mac.exp

    r282067 r282197  
    326326__ZNK3rtc9IPAddress5IsNilEv
    327327__ZN3rtc12SSLCertChainD1Ev
     328__ZN6webrtc24SctpTransportInformationD1Ev
  • trunk/Source/WebCore/CMakeLists.txt

    r282130 r282197  
    429429    Modules/mediastream/RTCRtpTransceiver.idl
    430430    Modules/mediastream/RTCRtpTransceiverDirection.idl
     431    Modules/mediastream/RTCSctpTransport.idl
     432    Modules/mediastream/RTCSctpTransportState.idl
    431433    Modules/mediastream/RTCSdpType.idl
    432434    Modules/mediastream/RTCSessionDescription.idl
  • trunk/Source/WebCore/ChangeLog

    r282196 r282197  
     12021-09-09  Youenn Fablet  <youenn@apple.com>
     2
     3        Add support for RTCSctpTransport
     4        https://bugs.webkit.org/show_bug.cgi?id=229292
     5        <rdar://problem/82394152>
     6
     7        Reviewed by Eric Carlson.
     8
     9        Expose RTSctpTransport API and getter from the peer connection.
     10        Implement event mechanism and getters.
     11        Additional work will be needed to make ice transport objects consistent between SCTP and senders/receivers.
     12        Covered by rebased tests.
     13
     14        * CMakeLists.txt:
     15        * DerivedSources-input.xcfilelist:
     16        * DerivedSources-output.xcfilelist:
     17        * DerivedSources.make:
     18        * Modules/mediastream/PeerConnectionBackend.cpp:
     19        (WebCore::PeerConnectionBackend::setLocalDescriptionSucceeded):
     20        (WebCore::PeerConnectionBackend::setRemoteDescriptionSucceeded):
     21        * Modules/mediastream/PeerConnectionBackend.h:
     22        * Modules/mediastream/RTCPeerConnection.cpp:
     23        (WebCore::RTCPeerConnection::updateSctpBackend):
     24        * Modules/mediastream/RTCPeerConnection.h:
     25        * Modules/mediastream/RTCPeerConnection.idl:
     26        * Modules/mediastream/RTCSctpTransport.cpp: Added.
     27        (WebCore::RTCSctpTransport::RTCSctpTransport):
     28        (WebCore::RTCSctpTransport::~RTCSctpTransport):
     29        (WebCore::RTCSctpTransport::stop):
     30        (WebCore::RTCSctpTransport::virtualHasPendingActivity const):
     31        (WebCore::RTCSctpTransport::onStateChanged):
     32        * Modules/mediastream/RTCSctpTransport.h: Added.
     33        * Modules/mediastream/RTCSctpTransport.idl: Added.
     34        * Modules/mediastream/RTCSctpTransportBackend.h: Added.
     35        (WebCore::operator==):
     36        * Modules/mediastream/RTCSctpTransportState.h: Added.
     37        * Modules/mediastream/RTCSctpTransportState.idl: Added.
     38        * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
     39        (WebCore::SctpTransportState::SctpTransportState):
     40        (WebCore::SctpTransportState::createBackend):
     41        (WebCore::LibWebRTCMediaEndpoint::setLocalSessionDescriptionSucceeded):
     42        (WebCore::LibWebRTCMediaEndpoint::setLocalSessionDescriptionFailed):
     43        (WebCore::LibWebRTCMediaEndpoint::setRemoteSessionDescriptionSucceeded):
     44        * Modules/mediastream/libwebrtc/LibWebRTCSctpTransportBackend.cpp: Added.
     45        (WebCore::toRTCSctpTransportState):
     46        (WebCore::LibWebRTCSctpTransportBackendObserver::LibWebRTCSctpTransportBackendObserver):
     47        (WebCore::LibWebRTCSctpTransportBackendObserver::updateState):
     48        (WebCore::LibWebRTCSctpTransportBackendObserver::start):
     49        (WebCore::LibWebRTCSctpTransportBackendObserver::stop):
     50        (WebCore::LibWebRTCSctpTransportBackendObserver::OnStateChange):
     51        (WebCore::LibWebRTCSctpTransportBackend::LibWebRTCSctpTransportBackend):
     52        (WebCore::LibWebRTCSctpTransportBackend::~LibWebRTCSctpTransportBackend):
     53        (WebCore::LibWebRTCSctpTransportBackend::dtlsTransportBackend):
     54        (WebCore::LibWebRTCSctpTransportBackend::registerClient):
     55        (WebCore::LibWebRTCSctpTransportBackend::unregisterClient):
     56        * Modules/mediastream/libwebrtc/LibWebRTCSctpTransportBackend.h: Added.
     57        * Sources.txt:
     58        * WebCore.xcodeproj/project.pbxproj:
     59        * bindings/js/WebCoreBuiltinNames.h:
     60        * dom/EventTargetFactory.in:
     61
    1622021-09-09  Jean-Yves Avenard  <jya@apple.com>
    263
  • trunk/Source/WebCore/DerivedSources-input.xcfilelist

    r282130 r282197  
    270270$(PROJECT_DIR)/Modules/mediastream/RTCRtpTransceiverDirection.idl
    271271$(PROJECT_DIR)/Modules/mediastream/RTCRtpTransform.idl
     272$(PROJECT_DIR)/Modules/mediastream/RTCSctpTransport.idl
     273$(PROJECT_DIR)/Modules/mediastream/RTCSctpTransportState.idl
    272274$(PROJECT_DIR)/Modules/mediastream/RTCSdpType.idl
    273275$(PROJECT_DIR)/Modules/mediastream/RTCSessionDescription.idl
  • trunk/Source/WebCore/DerivedSources-output.xcfilelist

    r282130 r282197  
    17561756$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSRTCRtpTransform.cpp
    17571757$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSRTCRtpTransform.h
     1758$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSRTCSctpTransport.cpp
     1759$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSRTCSctpTransport.h
     1760$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSRTCSctpTransportState.cpp
     1761$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSRTCSctpTransportState.h
    17581762$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSRTCSdpType.cpp
    17591763$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSRTCSdpType.h
  • trunk/Source/WebCore/DerivedSources.make

    r282130 r282197  
    293293    $(WebCore)/Modules/mediastream/RTCRtpTransceiver.idl \
    294294    $(WebCore)/Modules/mediastream/RTCRtpTransceiverDirection.idl \
     295    $(WebCore)/Modules/mediastream/RTCSctpTransport.idl \
     296    $(WebCore)/Modules/mediastream/RTCSctpTransportState.idl \
    295297    $(WebCore)/Modules/mediastream/RTCSdpType.idl \
    296298    $(WebCore)/Modules/mediastream/RTCSessionDescription.idl \
  • trunk/Source/WebCore/Modules/mediastream/PeerConnectionBackend.cpp

    r282149 r282197  
    4646#include "RTCPeerConnectionIceEvent.h"
    4747#include "RTCRtpCapabilities.h"
     48#include "RTCSctpTransportBackend.h"
    4849#include "RTCSessionDescriptionInit.h"
    4950#include "RTCTrackEvent.h"
     
    175176}
    176177
    177 void PeerConnectionBackend::setLocalDescriptionSucceeded()
     178void PeerConnectionBackend::setLocalDescriptionSucceeded(std::unique_ptr<RTCSctpTransportBackend>&& sctpBackend)
    178179{
    179180    ASSERT(isMainThread());
     
    181182
    182183    ASSERT(m_setDescriptionPromise);
    183     m_peerConnection.doTask([this, promise = WTFMove(m_setDescriptionPromise)]() mutable {
    184         if (m_peerConnection.isClosed())
    185             return;
     184    m_peerConnection.doTask([this, promise = WTFMove(m_setDescriptionPromise), sctpBackend = WTFMove(sctpBackend)]() mutable {
     185        if (m_peerConnection.isClosed())
     186            return;
     187
    186188        m_peerConnection.updateTransceiversAfterSuccessfulLocalDescription();
     189        m_peerConnection.updateSctpBackend(WTFMove(sctpBackend));
    187190        promise->resolve();
    188191    });
     
    211214}
    212215
    213 void PeerConnectionBackend::setRemoteDescriptionSucceeded()
     216void PeerConnectionBackend::setRemoteDescriptionSucceeded(std::unique_ptr<RTCSctpTransportBackend>&& sctpBackend)
    214217{
    215218    ASSERT(isMainThread());
     
    232235    }
    233236
    234     m_peerConnection.doTask([this, promise = WTFMove(promise)]() mutable {
     237    m_peerConnection.doTask([this, promise = WTFMove(promise), sctpBackend = WTFMove(sctpBackend)]() mutable {
    235238        if (m_peerConnection.isClosed())
    236239            return;
    237240
    238241        m_peerConnection.updateTransceiversAfterSuccessfulRemoteDescription();
     242        m_peerConnection.updateSctpBackend(WTFMove(sctpBackend));
    239243        promise->resolve();
    240244    });
  • trunk/Source/WebCore/Modules/mediastream/PeerConnectionBackend.h

    r282067 r282197  
    5858class RTCRtpSender;
    5959class RTCRtpTransceiver;
     60class RTCSctpTransportBackend;
    6061class RTCSessionDescription;
    6162class RTCStatsReport;
     
    199200    void createAnswerFailed(Exception&&);
    200201
    201     void setLocalDescriptionSucceeded();
     202    void setLocalDescriptionSucceeded(std::unique_ptr<RTCSctpTransportBackend>&&);
    202203    void setLocalDescriptionFailed(Exception&&);
    203204
    204     void setRemoteDescriptionSucceeded();
     205    void setRemoteDescriptionSucceeded(std::unique_ptr<RTCSctpTransportBackend>&&);
    205206    void setRemoteDescriptionFailed(Exception&&);
    206207
  • trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp

    r282149 r282197  
    6161#include "RTCPeerConnectionIceErrorEvent.h"
    6262#include "RTCPeerConnectionIceEvent.h"
     63#include "RTCSctpTransport.h"
    6364#include "RTCSessionDescription.h"
    6465#include "RTCSessionDescriptionInit.h"
     
    645646    ALWAYS_LOG(LOGIDENTIFIER, newState);
    646647
    647     scriptExecutionContext()->postTask([protectedThis = makeRef(*this), newState](ScriptExecutionContext&) {
     648    scriptExecutionContext()->postTask([protectedThis = makeRef(*this), newState](auto&) mutable {
    648649        if (protectedThis->isClosed() || protectedThis->m_iceConnectionState == newState)
    649650            return;
     
    698699
    699700    auto iceTransports = m_iceTransports;
     701
    700702    iceTransports.removeAllMatching([&](auto& iceTransport) {
    701         bool test = allOf(m_transceiverSet.list(), [&iceTransport](auto& transceiver) {
     703        if (m_sctpTransport && &m_sctpTransport->transport().iceTransport() == iceTransport.ptr())
     704            return false;
     705        return allOf(m_transceiverSet.list(), [&iceTransport](auto& transceiver) {
    702706            return !isIceTransportUsedByTransceiver(iceTransport.get(), *transceiver);
    703707        });
    704         return test;
    705708    });
    706709
     
    957960}
    958961
     962void RTCPeerConnection::updateSctpBackend(std::unique_ptr<RTCSctpTransportBackend>&& sctpBackend)
     963{
     964    if (!sctpBackend) {
     965        m_sctpTransport = nullptr;
     966        return;
     967    }
     968    if (m_sctpTransport && m_sctpTransport->backend() == *sctpBackend) {
     969        m_sctpTransport->update();
     970        return;
     971    }
     972    auto* context = scriptExecutionContext();
     973    if (!context)
     974        return;
     975
     976    auto dtlsTransport = getOrCreateDtlsTransport(sctpBackend->dtlsTransportBackend().moveToUniquePtr());
     977    if (!dtlsTransport)
     978        return;
     979    m_sctpTransport = RTCSctpTransport::create(*context, makeUniqueRefFromNonNullUniquePtr(WTFMove(sctpBackend)), dtlsTransport.releaseNonNull());
     980}
     981
    959982#if !RELEASE_LOG_DISABLED
    960983WTFLogChannel& RTCPeerConnection::logChannel() const
  • trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.h

    r282067 r282197  
    6464class RTCIceTransportBackend;
    6565class RTCPeerConnectionErrorCallback;
     66class RTCSctpTransport;
    6667class RTCSessionDescription;
    6768class RTCStatsCallback;
     
    189190    void updateTransceiversAfterSuccessfulLocalDescription();
    190191    void updateTransceiversAfterSuccessfulRemoteDescription();
     192    void updateSctpBackend(std::unique_ptr<RTCSctpTransportBackend>&&);
    191193
    192194    void processIceTransportStateChange(RTCIceTransport&);
     195
     196    RTCSctpTransport* sctp() { return m_sctpTransport.get(); }
    193197
    194198#if !RELEASE_LOG_DISABLED
     
    267271    Vector<Ref<RTCDtlsTransport>> m_dtlsTransports;
    268272    Vector<Ref<RTCIceTransport>> m_iceTransports;
     273    RefPtr<RTCSctpTransport> m_sctpTransport;
    269274};
    270275
  • trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.idl

    r282194 r282197  
    132132
    133133    // 6.1 Peer-to-peer data API
    134     // FIXME 169644: missing sctp
     134    readonly attribute RTCSctpTransport? sctp;
    135135
    136136    RTCDataChannel createDataChannel([LegacyNullToEmptyString] USVString label, optional RTCDataChannelInit options);
  • trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCIceTransportBackend.cpp

    r282067 r282197  
    3636
    3737ALLOW_UNUSED_PARAMETERS_END
     38
     39#include <wtf/ThreadSafeRefCounted.h>
    3840
    3941namespace WebCore {
  • trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp

    r282067 r282197  
    3737#include "LibWebRTCRtpSenderBackend.h"
    3838#include "LibWebRTCRtpTransceiverBackend.h"
     39#include "LibWebRTCSctpTransportBackend.h"
    3940#include "LibWebRTCStatsCollector.h"
    4041#include "LibWebRTCUtils.h"
     
    673674}
    674675
     676class SctpTransportState {
     677public:
     678    explicit SctpTransportState(rtc::scoped_refptr<webrtc::SctpTransportInterface>&&);
     679    std::unique_ptr<LibWebRTCSctpTransportBackend> createBackend();
     680
     681private:
     682    rtc::scoped_refptr<webrtc::SctpTransportInterface> m_transport;
     683    webrtc::SctpTransportInformation m_information;
     684};
     685
     686SctpTransportState::SctpTransportState(rtc::scoped_refptr<webrtc::SctpTransportInterface>&& transport)
     687    : m_transport(WTFMove(transport))
     688{
     689    if (m_transport)
     690        m_information = m_transport->Information();
     691}
     692
     693std::unique_ptr<LibWebRTCSctpTransportBackend> SctpTransportState::createBackend()
     694{
     695    if (!m_transport)
     696        return nullptr;
     697    return makeUnique<LibWebRTCSctpTransportBackend>(WTFMove(m_transport), m_information.dtls_transport());
     698}
     699
    675700void LibWebRTCMediaEndpoint::setLocalSessionDescriptionSucceeded()
    676701{
    677     callOnMainThread([protectedThis = makeRef(*this)] {
    678         if (protectedThis->isStopped())
    679             return;
    680         protectedThis->m_peerConnectionBackend.setLocalDescriptionSucceeded();
     702    callOnMainThread([protectedThis = makeRef(*this), sctpState = SctpTransportState(m_backend->GetSctpTransport())]() mutable {
     703        if (protectedThis->isStopped())
     704            return;
     705        protectedThis->m_peerConnectionBackend.setLocalDescriptionSucceeded(sctpState.createBackend());
    681706    });
    682707}
     
    684709void LibWebRTCMediaEndpoint::setLocalSessionDescriptionFailed(ExceptionCode errorCode, const char* errorMessage)
    685710{
    686     callOnMainThread([protectedThis = makeRef(*this), errorCode, errorMessage = String(errorMessage)] () mutable {
     711    callOnMainThread([protectedThis = makeRef(*this), errorCode, errorMessage = String(errorMessage)]() mutable {
    687712        if (protectedThis->isStopped())
    688713            return;
     
    693718void LibWebRTCMediaEndpoint::setRemoteSessionDescriptionSucceeded()
    694719{
    695     callOnMainThread([protectedThis = makeRef(*this)] {
    696         if (protectedThis->isStopped())
    697             return;
    698         protectedThis->m_peerConnectionBackend.setRemoteDescriptionSucceeded();
     720    callOnMainThread([protectedThis = makeRef(*this), sctpState = SctpTransportState(m_backend->GetSctpTransport())]() mutable {
     721        if (protectedThis->isStopped())
     722            return;
     723        protectedThis->m_peerConnectionBackend.setRemoteDescriptionSucceeded(sctpState.createBackend());
    699724    });
    700725}
  • trunk/Source/WebCore/Sources.txt

    r282142 r282197  
    180180Modules/mediastream/RTCRtpTransform.cpp
    181181Modules/mediastream/RTCRtpTransceiver.cpp
     182Modules/mediastream/RTCSctpTransport.cpp
    182183Modules/mediastream/RTCSessionDescription.cpp
    183184Modules/mediastream/RTCTrackEvent.cpp
     
    194195Modules/mediastream/libwebrtc/LibWebRTCRtpTransformBackend.cpp
    195196Modules/mediastream/libwebrtc/LibWebRTCRtpTransformableFrame.cpp
     197Modules/mediastream/libwebrtc/LibWebRTCSctpTransportBackend.cpp
    196198Modules/model-element/HTMLModelElement.cpp
    197199Modules/notifications/Notification.cpp
     
    33573359JSRTCRtpTransceiver.cpp
    33583360JSRTCRtpTransceiverDirection.cpp
     3361JSRTCSctpTransport.cpp
     3362JSRTCSctpTransportState.cpp
    33593363JSRTCSdpType.cpp
    33603364JSRTCSessionDescription.cpp
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r282142 r282197  
    10831083                413E00791DB0E4F2002341D2 /* MemoryRelease.h in Headers */ = {isa = PBXBuildFile; fileRef = 413E00781DB0E4DE002341D2 /* MemoryRelease.h */; settings = {ATTRIBUTES = (Private, ); }; };
    10841084                414460A22412994500814BE7 /* MediaSessionIdentifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 414460A02412994100814BE7 /* MediaSessionIdentifier.h */; settings = {ATTRIBUTES = (Private, ); }; };
     1085                414516EC26CE526600AAABE0 /* RTCSctpTransportBackend.h in Headers */ = {isa = PBXBuildFile; fileRef = 414516EB26CE526600AAABE0 /* RTCSctpTransportBackend.h */; };
    10851086                414598C223C8D177002B9CC8 /* LocalSampleBufferDisplayLayer.mm in Sources */ = {isa = PBXBuildFile; fileRef = 414598C123C8AD79002B9CC8 /* LocalSampleBufferDisplayLayer.mm */; };
    10861087                414B7FAD24D81CC10033D442 /* MediaRecorderPrivateOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 414B7FAB24D81C8F0033D442 /* MediaRecorderPrivateOptions.h */; settings = {ATTRIBUTES = (Private, ); }; };
     
    78377838                414516DF26CC040D00AAABE0 /* LibWebRTCIceTransportBackend.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = LibWebRTCIceTransportBackend.cpp; path = libwebrtc/LibWebRTCIceTransportBackend.cpp; sourceTree = "<group>"; };
    78387839                414516E026CC042100AAABE0 /* RTCIceTransportBackend.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RTCIceTransportBackend.h; sourceTree = "<group>"; };
     7840                414516E526CE523E00AAABE0 /* LibWebRTCSctpTransportBackend.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = LibWebRTCSctpTransportBackend.h; path = libwebrtc/LibWebRTCSctpTransportBackend.h; sourceTree = "<group>"; };
     7841                414516E726CE523E00AAABE0 /* LibWebRTCSctpTransportBackend.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = LibWebRTCSctpTransportBackend.cpp; path = libwebrtc/LibWebRTCSctpTransportBackend.cpp; sourceTree = "<group>"; };
     7842                414516E826CE525300AAABE0 /* RTCSctpTransport.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = RTCSctpTransport.cpp; sourceTree = "<group>"; };
     7843                414516E926CE525400AAABE0 /* RTCSctpTransport.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = RTCSctpTransport.idl; sourceTree = "<group>"; };
     7844                414516EA26CE525400AAABE0 /* RTCSctpTransport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RTCSctpTransport.h; sourceTree = "<group>"; };
     7845                414516EB26CE526600AAABE0 /* RTCSctpTransportBackend.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RTCSctpTransportBackend.h; sourceTree = "<group>"; };
     7846                414516ED26CE556B00AAABE0 /* RTCSctpTransportState.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = RTCSctpTransportState.idl; sourceTree = "<group>"; };
     7847                414516EE26CE556C00AAABE0 /* RTCSctpTransportState.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RTCSctpTransportState.h; sourceTree = "<group>"; };
    78397848                414598BE23C8AAB8002B9CC8 /* SampleBufferDisplayLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SampleBufferDisplayLayer.h; sourceTree = "<group>"; };
    78407849                414598C023C8AD78002B9CC8 /* LocalSampleBufferDisplayLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LocalSampleBufferDisplayLayer.h; sourceTree = "<group>"; };
     
    1735817367                                4181C5CA255582E300AEB0FF /* RTCRtpTransformableFrame.h */,
    1735917368                                4181C5C8255573DF00AEB0FF /* RTCRtpTransformBackend.h */,
     17369                                414516E826CE525300AAABE0 /* RTCSctpTransport.cpp */,
     17370                                414516EA26CE525400AAABE0 /* RTCSctpTransport.h */,
     17371                                414516E926CE525400AAABE0 /* RTCSctpTransport.idl */,
     17372                                414516EB26CE526600AAABE0 /* RTCSctpTransportBackend.h */,
     17373                                414516EE26CE556C00AAABE0 /* RTCSctpTransportState.h */,
     17374                                414516ED26CE556B00AAABE0 /* RTCSctpTransportState.idl */,
    1736017375                                410F565824FCF85400A2E50C /* RTCSdpType.idl */,
    1736117376                                07221B7A17CEC32700848E51 /* RTCSessionDescription.cpp */,
     
    1941719432                                4181C5CE2555895500AEB0FF /* LibWebRTCRtpTransformBackend.cpp */,
    1941819433                                4181C5CF2555895600AEB0FF /* LibWebRTCRtpTransformBackend.h */,
     19434                                414516E726CE523E00AAABE0 /* LibWebRTCSctpTransportBackend.cpp */,
     19435                                414516E526CE523E00AAABE0 /* LibWebRTCSctpTransportBackend.h */,
    1941919436                                41D28D0B2139E01D00F4206F /* LibWebRTCStatsCollector.cpp */,
    1942019437                                41D28D0C2139E01E00F4206F /* LibWebRTCStatsCollector.h */,
     
    3453434551                                4181C5CB255582E400AEB0FF /* RTCRtpTransformableFrame.h in Headers */,
    3453534552                                4181C5C9255573DF00AEB0FF /* RTCRtpTransformBackend.h in Headers */,
     34553                                414516EC26CE526600AAABE0 /* RTCSctpTransportBackend.h in Headers */,
    3453634554                                3135910A1E7DDC7300F30630 /* RTCSdpType.h in Headers */,
    3453734555                                078E092617D14D1C00420AA1 /* RTCSessionDescription.h in Headers */,
  • trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h

    r282130 r282197  
    213213    macro(RTCRtpTransceiver) \
    214214    macro(RTCRtpTransform) \
     215    macro(RTCSctpTransport) \
    215216    macro(RTCSessionDescription) \
    216217    macro(RTCStatsReport) \
  • trunk/Source/WebCore/dom/EventTargetFactory.in

    r282067 r282197  
    4646RTCRtpSFrameTransform conditional=WEB_RTC
    4747RTCRtpScriptTransform conditional=WEB_RTC
     48RTCSctpTransport conditional=WEB_RTC
    4849ServiceWorker conditional=SERVICE_WORKER
    4950ServiceWorkerContainer conditional=SERVICE_WORKER
Note: See TracChangeset for help on using the changeset viewer.