QuicDataChannel implements DataChannelInterface. It replaces SCTP data channels by using a QuicTransportChannel to create a ReliableQuicStream for each message. QuicDataChannel only implements unordered, reliable delivery for the initial implementation and does not send a hello message. QuicDataTransport is a helper class that dispatches each incoming ReliableQuicStream to a QuicDataChannel when the remote peer receives a message by parsing the data channel id and message id from the message header. It is also responsible for encoding the header before QuicDataChannel sends the message. Split from CL https://codereview.chromium.org/1844803002/. BUG= Review-Url: https://codereview.webrtc.org/1886623002 Cr-Commit-Position: refs/heads/master@{#12574}
208 lines
6.7 KiB
Python
208 lines
6.7 KiB
Python
# Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
|
|
#
|
|
# Use of this source code is governed by a BSD-style license
|
|
# that can be found in the LICENSE file in the root of the source
|
|
# tree. An additional intellectual property rights grant can be found
|
|
# in the file PATENTS. All contributing project authors may
|
|
# be found in the AUTHORS file in the root of the source tree.
|
|
|
|
{
|
|
'includes': [ '../build/common.gypi', ],
|
|
'targets': [
|
|
{
|
|
'target_name': 'peerconnection_unittests',
|
|
'type': '<(gtest_target_type)',
|
|
'dependencies': [
|
|
'<(DEPTH)/testing/gmock.gyp:gmock',
|
|
'<(webrtc_root)/api/api.gyp:libjingle_peerconnection',
|
|
'<(webrtc_root)/base/base_tests.gyp:rtc_base_tests_utils',
|
|
'<(webrtc_root)/common.gyp:webrtc_common',
|
|
'<(webrtc_root)/media/media.gyp:rtc_unittest_main',
|
|
'<(webrtc_root)/pc/pc.gyp:rtc_pc',
|
|
],
|
|
'direct_dependent_settings': {
|
|
'include_dirs': [
|
|
'<(DEPTH)/testing/gmock/include',
|
|
],
|
|
},
|
|
'defines': [
|
|
# Feature selection.
|
|
'HAVE_SCTP',
|
|
],
|
|
'sources': [
|
|
'datachannel_unittest.cc',
|
|
'dtlsidentitystore_unittest.cc',
|
|
'dtmfsender_unittest.cc',
|
|
'fakemetricsobserver.cc',
|
|
'fakemetricsobserver.h',
|
|
'jsepsessiondescription_unittest.cc',
|
|
'localaudiosource_unittest.cc',
|
|
'mediaconstraintsinterface_unittest.cc',
|
|
'mediastream_unittest.cc',
|
|
'peerconnection_unittest.cc',
|
|
'peerconnectionendtoend_unittest.cc',
|
|
'peerconnectionfactory_unittest.cc',
|
|
'peerconnectioninterface_unittest.cc',
|
|
'proxy_unittest.cc',
|
|
'rtpsenderreceiver_unittest.cc',
|
|
'statscollector_unittest.cc',
|
|
'test/fakeaudiocapturemodule.cc',
|
|
'test/fakeaudiocapturemodule.h',
|
|
'test/fakeaudiocapturemodule_unittest.cc',
|
|
'test/fakeconstraints.h',
|
|
'test/fakedatachannelprovider.h',
|
|
'test/fakedtlsidentitystore.h',
|
|
'test/fakeperiodicvideocapturer.h',
|
|
'test/fakevideotrackrenderer.h',
|
|
'test/mockpeerconnectionobservers.h',
|
|
'test/peerconnectiontestwrapper.h',
|
|
'test/peerconnectiontestwrapper.cc',
|
|
'test/testsdpstrings.h',
|
|
'videocapturertracksource_unittest.cc',
|
|
'videotrack_unittest.cc',
|
|
'webrtcsdp_unittest.cc',
|
|
'webrtcsession_unittest.cc',
|
|
],
|
|
# TODO(kjellander): Make the code compile without disabling these flags.
|
|
# See https://bugs.chromium.org/p/webrtc/issues/detail?id=3307
|
|
'cflags': [
|
|
'-Wno-sign-compare',
|
|
],
|
|
'cflags!': [
|
|
'-Wextra',
|
|
],
|
|
'cflags_cc!': [
|
|
'-Wnon-virtual-dtor',
|
|
'-Woverloaded-virtual',
|
|
],
|
|
'msvs_disabled_warnings': [
|
|
4245, # conversion from 'int' to 'size_t', signed/unsigned mismatch.
|
|
4267, # conversion from 'size_t' to 'int', possible loss of data.
|
|
4389, # signed/unsigned mismatch.
|
|
],
|
|
'conditions': [
|
|
['clang==1', {
|
|
# TODO(kjellander): Make the code compile without disabling these flags.
|
|
# See https://bugs.chromium.org/p/webrtc/issues/detail?id=3307
|
|
'cflags!': [
|
|
'-Wextra',
|
|
],
|
|
'xcode_settings': {
|
|
'WARNING_CFLAGS!': ['-Wextra'],
|
|
},
|
|
}],
|
|
['OS=="android"', {
|
|
'sources': [
|
|
'test/androidtestinitializer.cc',
|
|
'test/androidtestinitializer.h',
|
|
],
|
|
'dependencies': [
|
|
'<(DEPTH)/testing/android/native_test.gyp:native_test_native_code',
|
|
'<(webrtc_root)/api/api.gyp:libjingle_peerconnection_jni',
|
|
],
|
|
}],
|
|
['OS=="win" and clang==1', {
|
|
'msvs_settings': {
|
|
'VCCLCompilerTool': {
|
|
'AdditionalOptions': [
|
|
# Disable warnings failing when compiling with Clang on Windows.
|
|
# https://bugs.chromium.org/p/webrtc/issues/detail?id=5366
|
|
'-Wno-sign-compare',
|
|
'-Wno-unused-function',
|
|
],
|
|
},
|
|
},
|
|
}],
|
|
['use_quic==1', {
|
|
'dependencies': [
|
|
'<(DEPTH)/third_party/libquic/libquic.gyp:libquic',
|
|
],
|
|
'sources': [
|
|
'quicdatachannel_unittest.cc',
|
|
'quicdatatransport_unittest.cc',
|
|
],
|
|
'export_dependent_settings': [
|
|
'<(DEPTH)/third_party/libquic/libquic.gyp:libquic',
|
|
],
|
|
}],
|
|
], # conditions
|
|
}, # target peerconnection_unittests
|
|
], # targets
|
|
'conditions': [
|
|
['OS=="android"', {
|
|
'targets': [
|
|
{
|
|
'target_name': 'libjingle_peerconnection_android_unittest',
|
|
'type': 'none',
|
|
'dependencies': [
|
|
'<(webrtc_root)/api/api.gyp:libjingle_peerconnection_java',
|
|
],
|
|
'variables': {
|
|
'apk_name': 'libjingle_peerconnection_android_unittest',
|
|
'java_in_dir': 'androidtests',
|
|
'resource_dir': 'androidtests/res',
|
|
'native_lib_target': 'libjingle_peerconnection_so',
|
|
'is_test_apk': 1,
|
|
'test_type': 'instrumentation',
|
|
'tested_apk_path': '',
|
|
'never_lint': 1,
|
|
},
|
|
'includes': [
|
|
'../../build/java_apk.gypi',
|
|
'../../build/android/test_runner.gypi',
|
|
],
|
|
},
|
|
], # targets
|
|
}], # OS=="android"
|
|
['OS=="android"', {
|
|
'targets': [
|
|
{
|
|
'target_name': 'peerconnection_unittests_apk_target',
|
|
'type': 'none',
|
|
'dependencies': [
|
|
'<(apk_tests_path):peerconnection_unittests_apk',
|
|
],
|
|
},
|
|
],
|
|
'conditions': [
|
|
['test_isolation_mode != "noop"',
|
|
{
|
|
'targets': [
|
|
{
|
|
'target_name': 'peerconnection_unittests_apk_run',
|
|
'type': 'none',
|
|
'dependencies': [
|
|
'<(apk_tests_path):peerconnection_unittests_apk',
|
|
],
|
|
'includes': [
|
|
'../build/isolate.gypi',
|
|
],
|
|
'sources': [
|
|
'peerconnection_unittests_apk.isolate',
|
|
],
|
|
},
|
|
]
|
|
}
|
|
],
|
|
],
|
|
}], # OS=="android"
|
|
['test_isolation_mode != "noop"', {
|
|
'targets': [
|
|
{
|
|
'target_name': 'peerconnection_unittests_run',
|
|
'type': 'none',
|
|
'dependencies': [
|
|
'peerconnection_unittests',
|
|
],
|
|
'includes': [
|
|
'../build/isolate.gypi',
|
|
],
|
|
'sources': [
|
|
'peerconnection_unittests.isolate',
|
|
],
|
|
},
|
|
], # targets
|
|
}], # test_isolation_mode != "noop"
|
|
], # conditions
|
|
}
|