Commit Graph

1655 Commits

Author SHA1 Message Date
685be147cb Disable flaky AddMediaToConnectedBundleDoesNotRestartIce on tsan
Bug: webrtc:12538
Change-Id: I223f159904ffef5c7736a23c16a031f153c6a6da
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/211868
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33463}
2021-03-15 13:35:18 +00:00
7087b83d80 Test that SCTP succeeds with one MTU and fails with a lower MTU
This pair of tests will ensure that the SCTP layer's response to
MTU size changes has not been modified.

Bug: webrtc:12495
Change-Id: If9776ad399871e9f01b38715594b732e156118ff
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/211246
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33459}
2021-03-15 10:28:11 +00:00
6097b0fac0 Delete use of AsyncInvoker from PeerConnectionIntegrationWrapper
Bug: webrtc:12339
Change-Id: Ie76b2f4af9953579a24e2cf3f0f8833dc0d7999c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/211354
Reviewed-by: Taylor <deadbeef@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33456}
2021-03-15 10:02:35 +00:00
8973655f42 measure ice candidate poolsize setting for different bundle policys
The ICE candidate pool size defined in
   https://w3c.github.io/webrtc-pc/#dom-rtcconfiguration-icecandidatepoolsize
is an optimization and it may be desirable to restrict the maximum amount of
the pre-gathered components or limit the usage to the max-bundle policy.

BUG=webrtc:12383

Change-Id: I24a6434fb55b4d7f4471078785712996182f394a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/209701
Reviewed-by: Justin Uberti <juberti@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com>
Cr-Commit-Position: refs/heads/master@{#33442}
2021-03-11 21:39:23 +00:00
fd1e9d1af4 [Stats] Add minimum RTCReceivedRtpStreamStats with jitter and packetsLost
Spec: https://www.w3.org/TR/webrtc-stats/#receivedrtpstats-dict*

    According to the spec, |RTCReceivedRtpStreamStats| is the base class for |RTCInboundRtpStreamStats| and |RTCRemoteInboundRtpStreamStats|. This structure isn't visible in JavaScript but it's important to bring it up to spec for the C++ part. This CL adds the barebone |RTCReceivedRtpStreamStats| with a bunch of TODOs for later migrations.

    This commit makes the minimum |RTCReceivedRtpStreamStats| and rebase |RTCInboundRtpStreamStats| and |RTCRemoteInboundRtpStreamStats| to use the new class as the parent class.

    This commit also moves |jitter| and |packets_lost| to |RTCReceivedRtpStreamStats|, from |RTCInboundRtpStreamStats| and |RTCRemoteInboundRtpStreamStats|. Moving these two first because they are the two that exist in both subclasses for now.

Bug: webrtc:12532
Change-Id: I0ec74fd241f16c1e1a6498b6baa621ca0489f279
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/210340
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33435}
2021-03-11 11:58:58 +00:00
6a55e7307b Stop inheriting from has_slots in DtlsTransport.
Bug: webrtc:11943
Change-Id: Icb6cac30ba8a10528d75e87d9ccc3508d1cfb5a9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/208940
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33412}
2021-03-10 08:40:14 +00:00
668dbf66ce [Stats] Populate "frames" stats for video source.
Spec: https://www.w3.org/TR/webrtc-stats/#dom-rtcvideosourcestats-frames

Wiring up the "frames" stats with the cumulative fps counter on the video source.

Tests:
./out/Default/peerconnection_unittests
./out/Default/video_engine_tests

Bug: webrtc:12499
Change-Id: I4103f56ed04cb464f5f7e70fbf2d77c25a867a68
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/208782
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33404}
2021-03-09 08:54:38 +00:00
a113d231a6 srtp: use srtp_crypto_policy_set_from_profile_for_* from libsrtp
use the helper functions
  srtp_crypto_policy_set_from_profile_for_rtp
and
  srtp_crypto_policy_set_from_profile_for_rtcp
provided by libsrtp to initialize the rtp and rtcp policies.

BUG=None

Change-Id: Ib1560c0fc1c06d9e79c1f871b028555b3b4d66d4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/208480
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com>
Cr-Commit-Position: refs/heads/master@{#33399}
2021-03-08 10:41:29 +00:00
82a94125a4 Reland "Add a fuzzer test that tries to connect a PeerConnection."
This reverts commit ae44fde18854390ca7a51bcab37ef199a1555e38.

Reason for revert: Added Chromium compile guards

Original change's description:
> Revert "Add a fuzzer test that tries to connect a PeerConnection."
>
> This reverts commit c67b77eee4b08c05638a219723a9141a65015da4.
>
> Reason for revert: Breaks the libfuzzer chromium bots for WebRTC roll.
>
> Original change's description:
> > Add a fuzzer test that tries to connect a PeerConnection.
> >
> > Bug: none
> > Change-Id: I975c6a4cd5c7dfc4a7689259292ea7d443d270f7
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/209182
> > Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> > Reviewed-by: Henrik Boström <hbos@webrtc.org>
> > Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#33369}
>
> NOPRESUBMIT=true
>
> Bug: none
> Change-Id: Ib5fa809eb698c64b7c01835e8a311eaf85b19a18
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/209640
> Commit-Queue: Evan Shrubsole <eshr@google.com>
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#33380}

Bug: none
Change-Id: I07bab58f1216fb91b9b607e7ba978c28838d9411
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/210680
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33397}
2021-03-08 08:58:09 +00:00
be66d95ab7 srtp: document rationale for srtp overhead calculation
documents why it is safe to not follow libsrtp's advice
to ensure additional SRTP_MAX_TRAILER_LEN bytes are available
when calling srtp_protect (and similar srtcp functions).

BUG=None

Change-Id: I504645d21553160f06133fd8bb3ee79e178247da
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/209064
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com>
Cr-Commit-Position: refs/heads/master@{#33396}
2021-03-08 08:50:09 +00:00
3208bf102b Allow uninstantiated parametrized tests in data_channel_integration_tests.cc
Bug: webrtc:12525
Change-Id: I79244a3a6de29bcf77677dbc19368618116f8f9f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/209642
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33382}
2021-03-04 10:20:34 +00:00
ae44fde188 Revert "Add a fuzzer test that tries to connect a PeerConnection."
This reverts commit c67b77eee4b08c05638a219723a9141a65015da4.

Reason for revert: Breaks the libfuzzer chromium bots for WebRTC roll.

Original change's description:
> Add a fuzzer test that tries to connect a PeerConnection.
>
> Bug: none
> Change-Id: I975c6a4cd5c7dfc4a7689259292ea7d443d270f7
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/209182
> Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> Reviewed-by: Henrik Boström <hbos@webrtc.org>
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#33369}

NOPRESUBMIT=true

Bug: none
Change-Id: Ib5fa809eb698c64b7c01835e8a311eaf85b19a18
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/209640
Commit-Queue: Evan Shrubsole <eshr@google.com>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33380}
2021-03-04 09:42:34 +00:00
99bcf60a41 Check MID for illegal token characters.
Bug: webrtc:12516
Change-Id: I311dc984aa1dc8784d3ba3394676337b35cc92d9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/209360
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33370}
2021-03-03 08:55:39 +00:00
c67b77eee4 Add a fuzzer test that tries to connect a PeerConnection.
Bug: none
Change-Id: I975c6a4cd5c7dfc4a7689259292ea7d443d270f7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/209182
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33369}
2021-03-02 19:28:23 +00:00
88a51b2902 Populate "total_round_trip_time" and "round_trip_time_measurements" for remote inbound RTP streams
Spec: https://w3c.github.io/webrtc-stats/#remoteinboundrtpstats-dict*

Adding them into the stats definition as well.

Bug: webrtc:12507
Change-Id: Id467a33fe7bb256655b68819e3ce87ca9af5b25f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/209000
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33363}
2021-03-01 20:49:22 +00:00
86f04ad135 Populate “fractionLost” stats for remote inbound rtp streams
Tests:
./out/Default/peerconnection_unittests

Manually tested with Chromium to see the data populated

Spec: https://w3c.github.io/webrtc-stats/#remoteinboundrtpstats-dict*
Bug: webrtc:12506
Change-Id: I60ef8061fb31deab06ca5f115246ceb5a8cdc5ec
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/208960
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33361}
2021-03-01 16:48:37 +00:00
31e06cb63d addIceCandidate: prefer ice candidate sdpMid over sdpMLineIndex
as described in JSEP
  https://tools.ietf.org/html/rfc8829#section-3.5.2.1
 If the MID field is present in a received IceCandidate, it
 MUST be used for identification; otherwise, the "m=" section
 index is used instead.

BUG=webrtc:12479

Change-Id: I688a5e59024fe8cc6a170c216c6f14536084cfb9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/208100
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com>
Cr-Commit-Position: refs/heads/master@{#33357}
2021-03-01 14:01:39 +00:00
9d9b8defae Reland "Rename SIGNALING and WORKER to PRIMARY and SECONDARY"
This is a reland of a37f2bd9421868e222d591d3371486a6ab939fd6

Original change's description:
> Rename SIGNALING and WORKER to PRIMARY and SECONDARY
>
> This makes the proxy macros less confusing when the secondary thread
> is sometimes the worker thread, sometimes the networking thread.
>
> Bug: none
> Change-Id: I1a8cebb82d09be44fe40e80c861bcfb47b9928e8
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/208763
> Reviewed-by: Tommi <tommi@webrtc.org>
> Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#33346}

Bug: none
Change-Id: If46a6679ac0fc947797dd7be87626ef7702faca2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/208845
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33349}
2021-02-26 10:35:22 +00:00
07a01d09e4 Revert "Rename SIGNALING and WORKER to PRIMARY and SECONDARY"
This reverts commit a37f2bd9421868e222d591d3371486a6ab939fd6.

Reason for revert: Breaks compile step (e.g. https://ci.chromium.org/ui/p/webrtc/builders/ci/Android64%20Builder%20x64%20(dbg)/19773/overview).

Original change's description:
> Rename SIGNALING and WORKER to PRIMARY and SECONDARY
>
> This makes the proxy macros less confusing when the secondary thread
> is sometimes the worker thread, sometimes the networking thread.
>
> Bug: none
> Change-Id: I1a8cebb82d09be44fe40e80c861bcfb47b9928e8
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/208763
> Reviewed-by: Tommi <tommi@webrtc.org>
> Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#33346}

TBR=hta@webrtc.org

Bug: none
Change-Id: I2014faab3392f445f56edd9e833d00000ebc5ca3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/208840
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33347}
2021-02-26 07:20:49 +00:00
a37f2bd942 Rename SIGNALING and WORKER to PRIMARY and SECONDARY
This makes the proxy macros less confusing when the secondary thread
is sometimes the worker thread, sometimes the networking thread.

Bug: none
Change-Id: I1a8cebb82d09be44fe40e80c861bcfb47b9928e8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/208763
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33346}
2021-02-25 22:16:00 +00:00
2aeab5ed3f Make the PC proxy invoke LookupDtlsTransportByMid on the network thread
Bug: webrtc:12489
Change-Id: I786c968e4ee07c9bbce4a1c850a6f8f0c55810c0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/208580
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33345}
2021-02-25 21:51:35 +00:00
cd0373f013 peerconnection: add was-ever-connected boolean flag
and report some metrics only on the first connection state
change to connected

BUG=webrtc:12383

Change-Id: I32908e23c51aa40730be8e534793829268d4e25e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/208583
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com>
Cr-Commit-Position: refs/heads/master@{#33333}
2021-02-24 13:22:42 +00:00
c32f00ea9d Remove usage of sigslot and replace with a function pointer.
- Deleted unused sigslot.

Bug: webrtc:11943
Change-Id: I7863dd04e3e63fcba0eabd0dd752ab339614814e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/207840
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Lahiru Ginnaliya Gamathige <glahiru@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33327}
2021-02-24 06:40:09 +00:00
8af6b4928a Populate jitter stats for video RTP streams
Trying to take my first stab at contributing to WebRTC and I chose to populate jitter stats for video RTP streams. Please yell at me if this isn't something I'm not supposed to pick up. Appreciate a review, thanks!

Bug: webrtc:12487
Change-Id: Ifda985e9e20b1d87e4a7268f34ef2e45b1cbefa3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/208360
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33325}
2021-02-23 15:10:02 +00:00
e904161cec Replace RTC_DEPRECATED with ABSL_DEPRECATED
This remove webrtc-specific macro that has no reason to be webrtc specific
ABSL_DEPRECATED takes a message parameter encouraging to write text how class or function is deprecated.

Bug: webrtc:12484
Change-Id: I89f1398f91dacadc37f7db469dcd985e3724e444
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/208282
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33314}
2021-02-22 12:53:23 +00:00
39993844fa Reland "Reland "Split peer_connection_integrationtest.cc into pieces""
This reverts commit 89c40e246e39372390f0f843545d4e56aa657040.

Reason for revert: Added missing INSTANTIATE

Original change's description:
> Revert "Reland "Split peer_connection_integrationtest.cc into pieces""
>
> This reverts commit 772066bf16b125c1346a4d1b3e28c6e6f21cc1a7.
>
> Reason for revert: Did not catch all missing INSTANTIATE_TEST_SUITE_P
>
> Original change's description:
> > Reland "Split peer_connection_integrationtest.cc into pieces"
> >
> > This reverts commit 8644f2b7632cff5e46560c2f5cf7c0dc071aa32d.
> >
> > Reason for revert: Fixed the bugs
> >
> > Original change's description:
> > > Revert "Split peer_connection_integrationtest.cc into pieces"
> > >
> > > This reverts commit cae4656d4a7439e25160ff4d94e50949ff87cebe.
> > >
> > > Reason for revert: Breaks downstream build (missing INSTANTIATE_TEST_SUITE_P in pc/data_channel_integrationtest.cc).
> > >
> > > Original change's description:
> > > > Split peer_connection_integrationtest.cc into pieces
> > > >
> > > > This creates two integration tests: One for datachannel, the other
> > > > for every test that is not datachannel.
> > > >
> > > > It separates out the common framework to a new file in pc/test.
> > > > Also applies some fixes to IWYU.
> > > >
> > > > Bug: None
> > > > Change-Id: I919def1c360ffce205c20bec2d864aad9b179c3a
> > > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/207060
> > > > Reviewed-by: Henrik Boström <hbos@webrtc.org>
> > > > Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> > > > Cr-Commit-Position: refs/heads/master@{#33244}
> > >
> > > TBR=hbos@webrtc.org,hta@webrtc.org
> > >
> > > # Not skipping CQ checks because original CL landed > 1 day ago.
> > >
> > > No-Try: True
> > > Bug: None
> > > Change-Id: I7dbedd3256cb7ff47eb5f8cd46c7c044ed0aa1e0
> > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/207283
> > > Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> > > Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> > > Cr-Commit-Position: refs/heads/master@{#33255}
> >
> > # Not skipping CQ checks because original CL landed > 1 day ago.
> >
> > Bug: None
> > Change-Id: I1bb6186d7f898de82d26f4cd3d8a88014140c518
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/207864
> > Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> > Reviewed-by: Henrik Boström <hbos@webrtc.org>
> > Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> > Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#33283}
>
> Bug: None
> Change-Id: I2b09b57c2477e52301ac30ec12ed69f2555ba7f8
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/208021
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#33286}

Bug: None
Change-Id: I6e362ac2234ae6c69dc9bbf886ee7dece8484202
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/208022
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33289}
2021-02-17 12:28:07 +00:00
89c40e246e Revert "Reland "Split peer_connection_integrationtest.cc into pieces""
This reverts commit 772066bf16b125c1346a4d1b3e28c6e6f21cc1a7.

Reason for revert: Did not catch all missing INSTANTIATE_TEST_SUITE_P

Original change's description:
> Reland "Split peer_connection_integrationtest.cc into pieces"
>
> This reverts commit 8644f2b7632cff5e46560c2f5cf7c0dc071aa32d.
>
> Reason for revert: Fixed the bugs
>
> Original change's description:
> > Revert "Split peer_connection_integrationtest.cc into pieces"
> >
> > This reverts commit cae4656d4a7439e25160ff4d94e50949ff87cebe.
> >
> > Reason for revert: Breaks downstream build (missing INSTANTIATE_TEST_SUITE_P in pc/data_channel_integrationtest.cc).
> >
> > Original change's description:
> > > Split peer_connection_integrationtest.cc into pieces
> > >
> > > This creates two integration tests: One for datachannel, the other
> > > for every test that is not datachannel.
> > >
> > > It separates out the common framework to a new file in pc/test.
> > > Also applies some fixes to IWYU.
> > >
> > > Bug: None
> > > Change-Id: I919def1c360ffce205c20bec2d864aad9b179c3a
> > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/207060
> > > Reviewed-by: Henrik Boström <hbos@webrtc.org>
> > > Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> > > Cr-Commit-Position: refs/heads/master@{#33244}
> >
> > TBR=hbos@webrtc.org,hta@webrtc.org
> >
> > # Not skipping CQ checks because original CL landed > 1 day ago.
> >
> > No-Try: True
> > Bug: None
> > Change-Id: I7dbedd3256cb7ff47eb5f8cd46c7c044ed0aa1e0
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/207283
> > Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> > Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#33255}
>
> # Not skipping CQ checks because original CL landed > 1 day ago.
>
> Bug: None
> Change-Id: I1bb6186d7f898de82d26f4cd3d8a88014140c518
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/207864
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Reviewed-by: Henrik Boström <hbos@webrtc.org>
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#33283}

Bug: None
Change-Id: I2b09b57c2477e52301ac30ec12ed69f2555ba7f8
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/208021
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33286}
2021-02-17 08:59:05 +00:00
60c0b442ee Use CallbackList for DtlsState in dtls_transport.
- This contains a CallbackList disconnect and handled it
  by taking the given subscription tag to subscribe and unsubscribe.
- Left the original sigslot variable until downstream is update after
  this change.

Bug: webrtc:11943
No-Try: True
Change-Id: Ie96d74b9594eae11beaa552f61e40f451242bfab
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/203780
Commit-Queue: Lahiru Ginnaliya Gamathige <glahiru@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33285}
2021-02-17 07:42:13 +00:00
772066bf16 Reland "Split peer_connection_integrationtest.cc into pieces"
This reverts commit 8644f2b7632cff5e46560c2f5cf7c0dc071aa32d.

Reason for revert: Fixed the bugs

Original change's description:
> Revert "Split peer_connection_integrationtest.cc into pieces"
>
> This reverts commit cae4656d4a7439e25160ff4d94e50949ff87cebe.
>
> Reason for revert: Breaks downstream build (missing INSTANTIATE_TEST_SUITE_P in pc/data_channel_integrationtest.cc).
>
> Original change's description:
> > Split peer_connection_integrationtest.cc into pieces
> >
> > This creates two integration tests: One for datachannel, the other
> > for every test that is not datachannel.
> >
> > It separates out the common framework to a new file in pc/test.
> > Also applies some fixes to IWYU.
> >
> > Bug: None
> > Change-Id: I919def1c360ffce205c20bec2d864aad9b179c3a
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/207060
> > Reviewed-by: Henrik Boström <hbos@webrtc.org>
> > Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#33244}
>
> TBR=hbos@webrtc.org,hta@webrtc.org
>
> # Not skipping CQ checks because original CL landed > 1 day ago.
>
> No-Try: True
> Bug: None
> Change-Id: I7dbedd3256cb7ff47eb5f8cd46c7c044ed0aa1e0
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/207283
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#33255}

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: None
Change-Id: I1bb6186d7f898de82d26f4cd3d8a88014140c518
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/207864
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33283}
2021-02-16 18:53:18 +00:00
f4e3e2b83f Delete rtc::Callback0 and friends.
Replaced with std::function.

Bug: webrtc:6424
Change-Id: Iacc43822cb854ddde3cb1e5ddd863676cb07510a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/205005
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33281}
2021-02-16 12:41:35 +00:00
8644f2b763 Revert "Split peer_connection_integrationtest.cc into pieces"
This reverts commit cae4656d4a7439e25160ff4d94e50949ff87cebe.

Reason for revert: Breaks downstream build (missing INSTANTIATE_TEST_SUITE_P in pc/data_channel_integrationtest.cc).

Original change's description:
> Split peer_connection_integrationtest.cc into pieces
>
> This creates two integration tests: One for datachannel, the other
> for every test that is not datachannel.
>
> It separates out the common framework to a new file in pc/test.
> Also applies some fixes to IWYU.
>
> Bug: None
> Change-Id: I919def1c360ffce205c20bec2d864aad9b179c3a
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/207060
> Reviewed-by: Henrik Boström <hbos@webrtc.org>
> Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#33244}

TBR=hbos@webrtc.org,hta@webrtc.org

# Not skipping CQ checks because original CL landed > 1 day ago.

No-Try: True
Bug: None
Change-Id: I7dbedd3256cb7ff47eb5f8cd46c7c044ed0aa1e0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/207283
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33255}
2021-02-13 16:16:35 +00:00
6603ca3b9a Revert "Forward fix for BUILD file error"
This reverts commit df8baf6a8e989dff78730ea7a6556e562e6cb50f.

Reason for revert: Breaks downstream build (missing INSTANTIATE_TEST_SUITE_P in pc/data_channel_integrationtest.cc).

Original change's description:
> Forward fix for BUILD file error
>
> Fixes a problem with a downstream importer.
>
> No-Try: True
> Bug: none
> Change-Id: Ia2525087755add1df8e96990655f1ec6ec4bd5b6
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/207165
> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#33251}

TBR=mbonadei@webrtc.org,hta@webrtc.org

Change-Id: I25ba744a1e056dd5a1845da3835d59e5c6dbfd36
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: none
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/207282
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33253}
2021-02-13 10:17:19 +00:00
df8baf6a8e Forward fix for BUILD file error
Fixes a problem with a downstream importer.

No-Try: True
Bug: none
Change-Id: Ia2525087755add1df8e96990655f1ec6ec4bd5b6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/207165
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33251}
2021-02-12 17:22:33 +00:00
27bc6e2246 Reverting to previous behavior due to a downstream test expectation.
This reverts the change in behavior for setRemoteDescription,
introduced here:
https://webrtc-review.googlesource.com/c/src/+/206063

And disables the associated test.

Bug: webrtc:9987
Change-Id: I39a5664032a967a0a9cd336fa585d4d3880c88c5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/207162
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33248}
2021-02-12 13:35:03 +00:00
cae4656d4a Split peer_connection_integrationtest.cc into pieces
This creates two integration tests: One for datachannel, the other
for every test that is not datachannel.

It separates out the common framework to a new file in pc/test.
Also applies some fixes to IWYU.

Bug: None
Change-Id: I919def1c360ffce205c20bec2d864aad9b179c3a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/207060
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33244}
2021-02-12 10:06:43 +00:00
80d661cb7a Use monotonic clock for legacy stats caching.
Fixes a bug where, if the wall clock goes backwards (from changing time
zone, daylight savings, manual change by user, etc.), the stats
collector stops updating stats.

Bug: webrtc:12439
Change-Id: Ie45f484110d43444aea6d6b1a218b05d0f8b6a0c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/206622
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Taylor <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33240}
2021-02-11 21:45:30 +00:00
ec23d6d64f Remove blanket disabling of TSAN for peer_connection_integrationtests
and replace with specific compiler flags around the remaining failing
tests.

Bug: webrtc:3608, webrtc:11305, webrtc:11282
Change-Id: Iac45e52efcdfebc1bb85697a7606873255643e00
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/206980
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33233}
2021-02-11 12:01:10 +00:00
8cb9706288 AddRemoteCandidate on the network thread
SdpOfferAnswerHandler now hands over most of the work of adding a
remote candidate over to PeerConnection where the work will be
carried out asynchronously on the network thread (was
synchronous/blocking).

Once added, reporting (ReportRemoteIceCandidateAdded) continues on the
signaling thread as before. The difference is though that we don't
block the UseCandidate() operation which is a part of applying the
local and remote descriptions.

Besides now being asynchronous, there's one behavioural change:
Before starting the 'add' operation, the validity of the candidate
instance to be added, is checked. Previously if such an error occurred,
the error was silently ignored.

Bug: webrtc:9987
Change-Id: Ic1bfb8e27670fc81038b6ccec95ff36c65d12262
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/206063
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33230}
2021-02-11 09:54:45 +00:00
c3257d0c77 Reland "Remove thread hops from events provided by JsepTransportController."
This reverts commit 6e4fcac31312f2dda5b60d33874ff0cd62f94321.

Reason for revert: Parent CL issue has been resolved.

Original change's description:
> Revert "Remove thread hops from events provided by JsepTransportController."
>
> This reverts commit f554b3c577f69fa9ffad5c07155898c2d985ac76.
>
> Reason for revert: Parent CL breaks FYI bots.
> See https://webrtc-review.googlesource.com/c/src/+/206466
>
> Original change's description:
> > Remove thread hops from events provided by JsepTransportController.
> >
> > Events associated with Subscribe* methods in JTC had trampolines that
> > would use an async invoker to fire the events on the signaling thread.
> > This was being done for the purposes of PeerConnection but the concept
> > of a signaling thread is otherwise not applicable to JTC and use of
> > JTC from PC is inconsistent across threads (as has been flagged in
> > webrtc:9987).
> >
> > This change makes all CallbackList members only accessible from the
> > network thread and moves the signaling thread related work over to
> > PeerConnection, which makes hops there more visible as well as making
> > that class easier to refactor for thread efficiency.
> >
> > This CL removes the AsyncInvoker from JTC (webrtc:12339)
> >
> > The signaling_thread_ variable is also removed from JTC and more thread
> > checks added to catch errors.
> >
> > Bug: webrtc:12427, webrtc:11988, webrtc:12339
> > Change-Id: Id232aedd00dfd5403b2ba0ca147d3eca7c12c7c5
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/206062
> > Commit-Queue: Tommi <tommi@webrtc.org>
> > Reviewed-by: Niels Moller <nisse@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#33195}
>
> TBR=nisse@webrtc.org,tommi@webrtc.org
>
> Change-Id: I6134b71b74a9408854b79d44506d513519e9cf4d
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:12427
> Bug: webrtc:11988
> Bug: webrtc:12339
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/206467
> Reviewed-by: Guido Urdaneta <guidou@webrtc.org>
> Commit-Queue: Guido Urdaneta <guidou@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#33203}

TBR=nisse@webrtc.org,tommi@webrtc.org,guidou@webrtc.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: webrtc:12427
Bug: webrtc:11988
Bug: webrtc:12339
Change-Id: I4e2e1490e1f9a87ed6ac4d722fd3c442e3059ae0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/206809
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33225}
2021-02-11 07:21:55 +00:00
8bf61a3071 Add tests for datachannel continuity under network outages.
These test that a datachannel will deliver messages that are sent
while the network is down, both with and without ICE restarts.

Bug: webrtc:11891
Change-Id: I6c6633a655b0dd8e2e265aaf98789ca10b36884e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/206801
Reviewed-by: Taylor <deadbeef@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33223}
2021-02-10 22:33:22 +00:00
d15a575ec3 Use SequenceChecker from public API
Bug: webrtc:12419
Change-Id: I00cca16a0ec70246156ba00b97aa7ae5ccbf5364
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/205323
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33220}
2021-02-10 15:04:55 +00:00
92eebefd47 Reland "Fix unsynchronized access to mid_to_transport_ in JsepTransportController"
This reverts commit 6b143c1c0686519bc9d73223c1350cee286c8d78.

Reason for revert:
  Relanding with updated expectations for SctpTransport::Information
  based on TransceiverStateSurfacer in Chromium.


Original change's description:
> Revert "Fix unsynchronized access to mid_to_transport_ in JsepTransportController"
>
> This reverts commit 6cd405850467683cf10d05028ea0f644a68a91a4.
>
> Reason for revert: Breaks WebRTC Chromium FYI Bots
>
> First failure:
> https://ci.chromium.org/p/chromium/builders/webrtc.fyi/WebRTC%20Chromium%20FYI%20Android%20Tests%20%28dbg%29%20%28L%20Nexus5%29/1925
>
> Failed tests:
> WebRtcDataBrowserTest.CallWithSctpDataAndMedia
> WebRtcDataBrowserTest.CallWithSctpDataOnly
>
> Original change's description:
> > Fix unsynchronized access to mid_to_transport_ in JsepTransportController
> >
> > * Added several thread checks to JTC to help with programmer errors.
> > * Avoid a few Invokes() to the network thread here and there such
> >   as for fetching sctp transport name for getStats(). The transport
> >   name is now cached when it changes on the network thread.
> > * JsepTransportController instances now get deleted on the network
> >   thread rather than on the signaling thread + issuing an Invoke()
> >   in the dtor.
> > * Moved some thread hops from JTC over to PC which is where the problem
> >   exists and also (imho) makes it easier to see where hops happen in
> >   the PC code.
> > * The sctp transport is now started asynchronously when we push down the
> >   media description.
> > * PeerConnection proxy calls GetSctpTransport directly on the network
> >   thread instead of to the signaling thread + blocking on the network
> >   thread.
> > * The above changes simplified things for webrtc::SctpTransport which
> >   allowed for removing locking from that class and delete some code.
> >
> > Bug: webrtc:9987, webrtc:12445
> > Change-Id: Ic89a9426e314e1b93c81751d4f732f05fa448fbc
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/205620
> > Commit-Queue: Tommi <tommi@webrtc.org>
> > Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#33191}
>
> TBR=tommi@webrtc.org,hta@webrtc.org
>
> Change-Id: I7b2913d5133807589461105cf07eff3e9bb7157e
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:9987
> Bug: webrtc:12445
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/206466
> Reviewed-by: Guido Urdaneta <guidou@webrtc.org>
> Commit-Queue: Guido Urdaneta <guidou@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#33204}

TBR=tommi@webrtc.org,hta@webrtc.org,guidou@webrtc.org

# Not skipping CQ checks because this is a reland.

Bug: webrtc:9987
Bug: webrtc:12445
Change-Id: Icb205cbac493ed3b881d71ea3af4fb9018701bf4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/206560
Reviewed-by: Tommi <tommi@webrtc.org>
Reviewed-by: Guido Urdaneta <guidou@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33219}
2021-02-10 13:40:22 +00:00
ba69442054 Configure threads with their own warning deadlines.
Design document:
https://docs.google.com/document/d/1c_Jk-eqoBl3mZcEW73OO_WOnWVO9nTU854DHcyqjQBo/edit?resourcekey=0-j2bRwX0nxCldQ_VjoPFAOQ#

Bug: webrtc:12405
Change-Id: Idab950a3293d7ca9328dfeb19ec6d3084f7e0e5f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/203522
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33218}
2021-02-10 13:25:47 +00:00
06159aa8a5 Remove deprecated thread checker
Bug: webrtc:12419
Change-Id: Ie617a15c29a6b250a4c1bf36da113bb6d5b41d1f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/206642
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33216}
2021-02-10 12:25:53 +00:00
bb8f32f541 peerconnection: measure bundle policy usage
measured in the connectionstatechange event to connected which usually
happens once per connection.

BUG=webrtc:12383

Change-Id: Ida136c44bfe65e922627390747f8bee384603715
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/204301
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Justin Uberti <juberti@webrtc.org>
Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com>
Cr-Commit-Position: refs/heads/master@{#33207}
2021-02-09 17:09:46 +00:00
6b143c1c06 Revert "Fix unsynchronized access to mid_to_transport_ in JsepTransportController"
This reverts commit 6cd405850467683cf10d05028ea0f644a68a91a4.

Reason for revert: Breaks WebRTC Chromium FYI Bots

First failure:
https://ci.chromium.org/p/chromium/builders/webrtc.fyi/WebRTC%20Chromium%20FYI%20Android%20Tests%20%28dbg%29%20%28L%20Nexus5%29/1925

Failed tests:
WebRtcDataBrowserTest.CallWithSctpDataAndMedia
WebRtcDataBrowserTest.CallWithSctpDataOnly

Original change's description:
> Fix unsynchronized access to mid_to_transport_ in JsepTransportController
>
> * Added several thread checks to JTC to help with programmer errors.
> * Avoid a few Invokes() to the network thread here and there such
>   as for fetching sctp transport name for getStats(). The transport
>   name is now cached when it changes on the network thread.
> * JsepTransportController instances now get deleted on the network
>   thread rather than on the signaling thread + issuing an Invoke()
>   in the dtor.
> * Moved some thread hops from JTC over to PC which is where the problem
>   exists and also (imho) makes it easier to see where hops happen in
>   the PC code.
> * The sctp transport is now started asynchronously when we push down the
>   media description.
> * PeerConnection proxy calls GetSctpTransport directly on the network
>   thread instead of to the signaling thread + blocking on the network
>   thread.
> * The above changes simplified things for webrtc::SctpTransport which
>   allowed for removing locking from that class and delete some code.
>
> Bug: webrtc:9987, webrtc:12445
> Change-Id: Ic89a9426e314e1b93c81751d4f732f05fa448fbc
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/205620
> Commit-Queue: Tommi <tommi@webrtc.org>
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#33191}

TBR=tommi@webrtc.org,hta@webrtc.org

Change-Id: I7b2913d5133807589461105cf07eff3e9bb7157e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:9987
Bug: webrtc:12445
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/206466
Reviewed-by: Guido Urdaneta <guidou@webrtc.org>
Commit-Queue: Guido Urdaneta <guidou@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33204}
2021-02-09 12:27:32 +00:00
6e4fcac313 Revert "Remove thread hops from events provided by JsepTransportController."
This reverts commit f554b3c577f69fa9ffad5c07155898c2d985ac76.

Reason for revert: Parent CL breaks FYI bots.
See https://webrtc-review.googlesource.com/c/src/+/206466

Original change's description:
> Remove thread hops from events provided by JsepTransportController.
>
> Events associated with Subscribe* methods in JTC had trampolines that
> would use an async invoker to fire the events on the signaling thread.
> This was being done for the purposes of PeerConnection but the concept
> of a signaling thread is otherwise not applicable to JTC and use of
> JTC from PC is inconsistent across threads (as has been flagged in
> webrtc:9987).
>
> This change makes all CallbackList members only accessible from the
> network thread and moves the signaling thread related work over to
> PeerConnection, which makes hops there more visible as well as making
> that class easier to refactor for thread efficiency.
>
> This CL removes the AsyncInvoker from JTC (webrtc:12339)
>
> The signaling_thread_ variable is also removed from JTC and more thread
> checks added to catch errors.
>
> Bug: webrtc:12427, webrtc:11988, webrtc:12339
> Change-Id: Id232aedd00dfd5403b2ba0ca147d3eca7c12c7c5
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/206062
> Commit-Queue: Tommi <tommi@webrtc.org>
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#33195}

TBR=nisse@webrtc.org,tommi@webrtc.org

Change-Id: I6134b71b74a9408854b79d44506d513519e9cf4d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:12427
Bug: webrtc:11988
Bug: webrtc:12339
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/206467
Reviewed-by: Guido Urdaneta <guidou@webrtc.org>
Commit-Queue: Guido Urdaneta <guidou@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33203}
2021-02-09 12:26:26 +00:00
7ef97f6ff7 Relax limit on audio samples watching even more
This should account for the linux_x86_dbg bot flaking on the test.

Bug: none
Change-Id: I77f9134941c42eae078b2da57e9b05517bdda923
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/206064
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33198}
2021-02-08 19:32:27 +00:00
f554b3c577 Remove thread hops from events provided by JsepTransportController.
Events associated with Subscribe* methods in JTC had trampolines that
would use an async invoker to fire the events on the signaling thread.
This was being done for the purposes of PeerConnection but the concept
of a signaling thread is otherwise not applicable to JTC and use of
JTC from PC is inconsistent across threads (as has been flagged in
webrtc:9987).

This change makes all CallbackList members only accessible from the
network thread and moves the signaling thread related work over to
PeerConnection, which makes hops there more visible as well as making
that class easier to refactor for thread efficiency.

This CL removes the AsyncInvoker from JTC (webrtc:12339)

The signaling_thread_ variable is also removed from JTC and more thread
checks added to catch errors.

Bug: webrtc:12427, webrtc:11988, webrtc:12339
Change-Id: Id232aedd00dfd5403b2ba0ca147d3eca7c12c7c5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/206062
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33195}
2021-02-08 17:52:01 +00:00
6cd4058504 Fix unsynchronized access to mid_to_transport_ in JsepTransportController
* Added several thread checks to JTC to help with programmer errors.
* Avoid a few Invokes() to the network thread here and there such
  as for fetching sctp transport name for getStats(). The transport
  name is now cached when it changes on the network thread.
* JsepTransportController instances now get deleted on the network
  thread rather than on the signaling thread + issuing an Invoke()
  in the dtor.
* Moved some thread hops from JTC over to PC which is where the problem
  exists and also (imho) makes it easier to see where hops happen in
  the PC code.
* The sctp transport is now started asynchronously when we push down the
  media description.
* PeerConnection proxy calls GetSctpTransport directly on the network
  thread instead of to the signaling thread + blocking on the network
  thread.
* The above changes simplified things for webrtc::SctpTransport which
  allowed for removing locking from that class and delete some code.

Bug: webrtc:9987, webrtc:12445
Change-Id: Ic89a9426e314e1b93c81751d4f732f05fa448fbc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/205620
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33191}
2021-02-08 14:45:25 +00:00