Writable connections are pinged at a slower rate.
The function IsPingable will filter out the writable connections.
The interval for slower ping rate by default is WRITABLE_CONNECTION_PING_INTERVAL(2500ms) and can be set with the configuration.
BUG=webrtc:1161
Review-Url: https://codereview.webrtc.org/1944003002
Cr-Commit-Position: refs/heads/master@{#12736}
Add BUILD.gn files for webrtc/{api,media,libjingle,p2p,pc} in
preparation for removing src/third_party/libjingle in Chromium.
BUG=webrtc:4256
NOTRY=True
TBR=perkj@webrtc.org
Review-Url: https://codereview.webrtc.org/1973313002
Cr-Commit-Position: refs/heads/master@{#12731}
Depends on this CL in order to work in Chromium:
https://codereview.chromium.org/1976673002/
It works by creating pooled PortAllocatorSessions which can be picked up
by a P2PTransportChannel when needed (after a local description is set).
This can optimize candidate gathering time when there is some time between
creating a PeerConnection and setting a local description.
R=pthatcher@webrtc.org
Committed: 48e9d05f51
Review URL: https://codereview.webrtc.org/1956453003 .
Cr-Commit-Position: refs/heads/master@{#12729}
Reason for revert:
Breaks GN in Chromium.
Original issue's description:
> GN: Add BUILD.gn files for webrtc/{api,media,libjingle,p2p,pc}
>
> Add BUILD.gn files for webrtc/{api,media,libjingle,p2p,pc} in
> preparation for removing src/third_party/libjingle in Chromium.
>
> BUG=webrtc:4256
> NOTRY=True
>
> Committed: https://crrev.com/4d02a358b4205bd0f7b5f794b6fb8c157e075b9e
> Cr-Commit-Position: refs/heads/master@{#12724}
TBR=perkj@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:4256
Review-Url: https://codereview.webrtc.org/1977853002
Cr-Commit-Position: refs/heads/master@{#12726}
Add BUILD.gn files for webrtc/{api,media,libjingle,p2p,pc} in
preparation for removing src/third_party/libjingle in Chromium.
BUG=webrtc:4256
NOTRY=True
Review-Url: https://codereview.webrtc.org/1929633002
Cr-Commit-Position: refs/heads/master@{#12724}
Reason for revert:
Breaks remoting_unittests. They defined their own operator== which conflicts with this one.
I'll remove the operator== in a roll CL. But until it's approved, I'm reverting this so the FYI bots will pass.
Original issue's description:
> Implement RTCConfiguration.iceCandidatePoolSize.
>
> It works by creating pooled PortAllocatorSessions which can be picked up
> by a P2PTransportChannel when needed (after a local description is set).
>
> This can optimize candidate gathering time when there is some time between
> creating a PeerConnection and setting a local description.
>
> R=pthatcher@webrtc.org
>
> Committed: 48e9d05f51TBR=pthatcher@webrtc.org,honghaiz@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review-Url: https://codereview.webrtc.org/1972043004
Cr-Commit-Position: refs/heads/master@{#12709}
It works by creating pooled PortAllocatorSessions which can be picked up
by a P2PTransportChannel when needed (after a local description is set).
This can optimize candidate gathering time when there is some time between
creating a PeerConnection and setting a local description.
R=pthatcher@webrtc.org
Review URL: https://codereview.webrtc.org/1956453003 .
Cr-Commit-Position: refs/heads/master@{#12708}
Reason for revert:
Breaks user code. Said code needs to stop using scoped_ptr!
Original issue's description:
> Remove webrtc/base/scoped_ptr.h
>
> BUG=webrtc:5520
>
> NOTRY=True
>
> Committed: https://crrev.com/65fc62e9dd8a8716db625aaef76ab92f542ecc5a
> Cr-Commit-Position: refs/heads/master@{#12684}
TBR=tommi@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5520
Review-Url: https://codereview.webrtc.org/1965063003
Cr-Commit-Position: refs/heads/master@{#12686}
AllocationSequence is responsible for receiving incoming packets on
a shared UDP socket and passing them to the Port objects. TurnPort
may stop sharing UDP socket in which case it allocates a new socket.
AllocationSequence::OnReadPacket() wasn't handling that case properly
which was causing an assert in TurnPort::OnReadPacket().
BUG=webrtc:5757
R=honghaiz@webrtc.org, jiayl@chromium.org, pthatcher@webrtc.org
Review URL: https://codereview.webrtc.org/1871693004 .
Cr-Commit-Position: refs/heads/master@{#12675}
In some cases, the DTLS ClientHello may arrive before the server's
transport is writable (before it receives a STUN ping response), or
even before it receives a remote fingerprint. If this packet is
discarded, it may take a second for a it to be sent again.
So, this CL caches it instead of dropping it, and feeds it into
the SSL library once the handshake has been started.
BUG=webrtc:5789
Review-Url: https://codereview.webrtc.org/1912323002
Cr-Commit-Position: refs/heads/master@{#12634}
But keep #including scoped_ptr.h in .h files, so as not to break
WebRTC users who expect those .h files to give them rtc::scoped_ptr.
BUG=webrtc:5520
Review-Url: https://codereview.webrtc.org/1937693002
Cr-Commit-Position: refs/heads/master@{#12581}
The QuicWriteBlockedList needs to register outgoing QUIC
streams so that when the QuicTransportChannel becomes
unwritable and QUIC streams have buffered data, they can
send data once the QuicTransportChannel becomes writable.
Otherwise the QUIC streams will remain write blocked
after the QuicTransportChannel is writable.
BUG=
Review-Url: https://codereview.webrtc.org/1888903002
Cr-Commit-Position: refs/heads/master@{#12573}
These changes are necessary to incorporate the latest
changes to QUIC sessions and the QUIC crypto handshake.
BUG=
Review-Url: https://codereview.webrtc.org/1910633003
Cr-Commit-Position: refs/heads/master@{#12571}
The problem with gmock is worked around by commenting out any other override declarations in classes using gmock.
NOPRESUBMIT=True
BUG=webrtc:3970
Review-Url: https://codereview.webrtc.org/1921653002
Cr-Commit-Position: refs/heads/master@{#12563}
But keep #including scoped_ptr.h in .h files, so as not to break
WebRTC users who expect those .h files to give them rtc::scoped_ptr.
BUG=webrtc:5520
Review URL: https://codereview.webrtc.org/1923163003
Cr-Commit-Position: refs/heads/master@{#12532}
Any file that uses the RTC_DISALLOW_* macros should #include
"webrtc/base/constructormagic.h", but a shocking number of them don't.
This causes trouble when we try to wean files off of #including
scoped_ptr.h, since a bunch of files get their constructormagic macros
only from there.
Rather than fixing these errors one by one as they turn up, this CL
simply ensures that every file in the WebRTC tree that uses the
RTC_DISALLOW_* macros #includes "webrtc/base/constructormagic.h".
BUG=webrtc:5520
Review URL: https://codereview.webrtc.org/1917043005
Cr-Commit-Position: refs/heads/master@{#12509}
This propagated into various other places. Also had to #include headers that
were implicitly pulled by "scoped_ptr.h".
BUG=webrtc:5520
Review URL: https://codereview.webrtc.org/1920043002
Cr-Commit-Position: refs/heads/master@{#12501}
If a STUN ping arrives before the remote description does, a prflx
candidate will be created with an unknown generation.
Once the remote description does arrive, the candidate's generation
should be set so it can be sorted properly, and replaced by a non-prflx
candidate once the candidate is signaled.
BUG=webrtc:5752
R=honghaiz@webrtc.org, pthatcher@webrtc.org
Review URL: https://codereview.webrtc.org/1868353004 .
Cr-Commit-Position: refs/heads/master@{#12433}
The QuicTransportChannel now creates outgoing QUIC streams
for sending a message, and incoming QUIC streams for
receiving a message. It also signals when the QUIC connection
closes.
Split from CL https://codereview.webrtc.org/1844803002/.
BUG=
Review URL: https://codereview.webrtc.org/1856513002
Cr-Commit-Position: refs/heads/master@{#12323}
Instead of using a raw pointer output parameter. This affects
SSLStreamAdapter::GetPeerCertificate
Transport::GetRemoteSSLCertificate
TransportChannel::GetRemoteSSLCertificate
TransportController::GetRemoteSSLCertificate
WebRtcSession::GetRemoteSSLCertificate
This is a good idea in general, but will also be very convenient when
scoped_ptr is gone, since unique_ptr doesn't have an .accept() method.
BUG=webrtc:5520
Review URL: https://codereview.webrtc.org/1802013002
Cr-Commit-Position: refs/heads/master@{#12262}
so that the call knows which packet ids were sent on the previous candidate pair.
Note that packet_id is actually 16bits, so we can use -1 for values that are not set.
Also moved the tests for candidate pair changes to TestSelectConnectionBeforeNomination.
BUG=
R=deadbeef@webrtc.org, pthatcher@webrtc.org
Review URL: https://codereview.webrtc.org/1842093002 .
Cr-Commit-Position: refs/heads/master@{#12184}
The re-land moves the isolate build targets for media.gyp
and pc.gyp into the include_tests==1 condition.
This has been tested in a Chromium checkout and no longer
causes the error that was seen after landing
https://codereview.webrtc.org/1839763004/
Original issue's description:
> Revert of Remove {media,p2p,pc,xmllite,xmpp}_tests.gypi files. (patchset #1 id:1 of https://codereview.webrtc.org/1839763004/ )
>
> Reason for revert:
> Breaks Chromium: https://build.chromium.org/p/chromium.webrtc.fyi/builders/Mac%20Builder/builds/11313/steps/gclient%20runhooks/logs/stdio:
>
> Updating projects from gyp files...
> Using overrides found in /Users/chrome-bot/.gyp/include.gypi
> Traceback (most recent call last):
> File "src/build/gyp_chromium", line 12, in <module>
> execfile(__file__ + '.py')
> File "src/build/gyp_chromium.py", line 341, in <module>
> sys.exit(main())
> File "src/build/gyp_chromium.py", line 328, in main
> gyp_rc = gyp.main(args)
> File "/b/build/slave/Mac_Builder/build/src/tools/gyp/pylib/gyp/__init__.py", line 538, in main
> return gyp_main(args)
> File "/b/build/slave/Mac_Builder/build/src/tools/gyp/pylib/gyp/__init__.py", line 514, in gyp_main
> options.duplicate_basename_check)
> File "/b/build/slave/Mac_Builder/build/src/tools/gyp/pylib/gyp/__init__.py", line 130, in Load
> params['parallel'], params['root_targets'])
> File "/b/build/slave/Mac_Builder/build/src/tools/gyp/pylib/gyp/input.py", line 2800, in Load
> RemoveLinkDependenciesFromNoneTargets(targets)
> File "/b/build/slave/Mac_Builder/build/src/tools/gyp/pylib/gyp/input.py", line 1510, in RemoveLinkDependenciesFromNoneTargets
> if targets[t].get('variables', {}).get('link_dependency', 0):
> KeyError: '/b/build/slave/Mac_Builder/build/src/third_party/webrtc/media/media.gyp:rtc_media_unittests#target'
> Error: Command '/usr/bin/python src/build/gyp_chromium' returned non-zero exit status 1 in /b/build/slave/Mac_Builder/build
> Hook '/usr/bin/python src/build/gyp_chromium' took 20.29 secs
>
> Original issue's description:
> > Remove {media,p2p,pc,xmllite,xmpp}_tests.gypi files.
> >
> > These contributes to circular dependency problems in WebRTC
> > since one have to depend on webrtc.gyp in order to depend on
> > a target in them.
> >
> > This reduces the number of cyclic dependencies in WebRTC from 21
> > to 16.
> >
> > BUG=webrtc:4243
> > NOTRY=True
> > NOPRESUBMIT=True
> >
> > Committed: https://crrev.com/231b69f28dd22f4e2d98e5048f8eaae7b20915e6
> > Cr-Commit-Position: refs/heads/master@{#12166}
>
> TBR=pthatcher@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:4243
>
> Committed: https://crrev.com/72644d2cf6b14bbc4a107f79158eaa225f3196b5
> Cr-Commit-Position: refs/heads/master@{#12167}
TBR=pthatcher@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:4243
Review URL: https://codereview.webrtc.org/1843193002
Cr-Commit-Position: refs/heads/master@{#12180}
Reason for revert:
Breaks Chromium: https://build.chromium.org/p/chromium.webrtc.fyi/builders/Mac%20Builder/builds/11313/steps/gclient%20runhooks/logs/stdio:
Updating projects from gyp files...
Using overrides found in /Users/chrome-bot/.gyp/include.gypi
Traceback (most recent call last):
File "src/build/gyp_chromium", line 12, in <module>
execfile(__file__ + '.py')
File "src/build/gyp_chromium.py", line 341, in <module>
sys.exit(main())
File "src/build/gyp_chromium.py", line 328, in main
gyp_rc = gyp.main(args)
File "/b/build/slave/Mac_Builder/build/src/tools/gyp/pylib/gyp/__init__.py", line 538, in main
return gyp_main(args)
File "/b/build/slave/Mac_Builder/build/src/tools/gyp/pylib/gyp/__init__.py", line 514, in gyp_main
options.duplicate_basename_check)
File "/b/build/slave/Mac_Builder/build/src/tools/gyp/pylib/gyp/__init__.py", line 130, in Load
params['parallel'], params['root_targets'])
File "/b/build/slave/Mac_Builder/build/src/tools/gyp/pylib/gyp/input.py", line 2800, in Load
RemoveLinkDependenciesFromNoneTargets(targets)
File "/b/build/slave/Mac_Builder/build/src/tools/gyp/pylib/gyp/input.py", line 1510, in RemoveLinkDependenciesFromNoneTargets
if targets[t].get('variables', {}).get('link_dependency', 0):
KeyError: '/b/build/slave/Mac_Builder/build/src/third_party/webrtc/media/media.gyp:rtc_media_unittests#target'
Error: Command '/usr/bin/python src/build/gyp_chromium' returned non-zero exit status 1 in /b/build/slave/Mac_Builder/build
Hook '/usr/bin/python src/build/gyp_chromium' took 20.29 secs
Original issue's description:
> Remove {media,p2p,pc,xmllite,xmpp}_tests.gypi files.
>
> These contributes to circular dependency problems in WebRTC
> since one have to depend on webrtc.gyp in order to depend on
> a target in them.
>
> This reduces the number of cyclic dependencies in WebRTC from 21
> to 16.
>
> BUG=webrtc:4243
> NOTRY=True
> NOPRESUBMIT=True
>
> Committed: https://crrev.com/231b69f28dd22f4e2d98e5048f8eaae7b20915e6
> Cr-Commit-Position: refs/heads/master@{#12166}
TBR=pthatcher@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:4243
Review URL: https://codereview.webrtc.org/1846693002
Cr-Commit-Position: refs/heads/master@{#12167}
These contributes to circular dependency problems in WebRTC
since one have to depend on webrtc.gyp in order to depend on
a target in them.
This reduces the number of cyclic dependencies in WebRTC from 21
to 16.
BUG=webrtc:4243
NOTRY=True
NOPRESUBMIT=True
Review URL: https://codereview.webrtc.org/1839763004
Cr-Commit-Position: refs/heads/master@{#12166}
This allows the reader to reference data, thus avoiding unnecessary
allocations and memory copies.
BUG=webrtc:5155,webrtc:5670
Review URL: https://codereview.webrtc.org/1821083002
Cr-Commit-Position: refs/heads/master@{#12160}
This CL integrates recent Chromium changes that were merged
into https://github.com/devsisters/libquic/tree/master.
It also performs minor cleanup, such as removing accidental
usage of Chromium logging symbols (e.g. LOG(INFO),
LOG(ERROR) instead of LOG(LS_INFO), LOG(LS_ERROR)) and
using Chromium's scoped_ptr instead of rtc::scoped_ptr.
BUG=
Review URL: https://codereview.webrtc.org/1834233002
Cr-Commit-Position: refs/heads/master@{#12146}
Also include that in the stun-ping request as part of the
network-info attribute.
Change the network cost to be 16 bits.
BUG=
Review URL: https://codereview.webrtc.org/1815473002
Cr-Commit-Position: refs/heads/master@{#12110}
No operator== that accepts one unique_ptr<T> and one T*. No implicit
conversion to bool. No rtc_make_scoped_ptr function.
BUG=webrtc:5520
Review URL: https://codereview.webrtc.org/1803833002
Cr-Commit-Position: refs/heads/master@{#12048}
Also changed from unsigned to signed integer per the style guide.
By the way, I kept all delta-times to be 32-bit int.
The only things left in the p2p dir are
1. proberprober/main.cc where Time() is used as the input for a random number.
2. pseudotcp.cc: where 32-bit time info is sent over the wire.
BUG=webrtc:5636
Review URL: https://codereview.webrtc.org/1793553002
Cr-Commit-Position: refs/heads/master@{#12019}
Reason for revert:
The openmax_dl include change breaks downstream projects.
Original issue's description:
> Add check_deps rules in DEPS files.
>
> Add fine-grained check_deps rules for all of WebRTC.
> This will help both maintaining sane dependencies and provides a way
> to visualize dependency graphs using the buildtools/checkdeps/graphdeps.py script.
>
> Example:
> buildtools/checkdeps/graphdeps.py --root=. --format=png \
> --out=./webrtc.png --incl='^webrtc/modules/bitrate_controller->' \
> --excl='chromium|base|external|testing|webrtc/test|\.h$|\.cc$'
>
> will produce a neat webrtc.png image showcasing the dependencies
> (according to the DEPS file) for the bitrate_controller module.
> Some dependencies are filtered out for readability.
>
> BUG=webrtc:5623
> TESTED=Passing runs using:
> buildtools/checkdeps/checkdeps.py --root=. talk
> buildtools/checkdeps/checkdeps.py --root=. webrtc
>
> R=tommi@webrtc.org
>
> Committed: https://crrev.com/086f851b7b9b4bcbd4fe507c3bf83b760bd7f4d9
> Cr-Commit-Position: refs/heads/master@{#12008}
TBR=tommi@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5623
Review URL: https://codereview.webrtc.org/1808573002
Cr-Commit-Position: refs/heads/master@{#12009}
Add fine-grained check_deps rules for all of WebRTC.
This will help both maintaining sane dependencies and provides a way
to visualize dependency graphs using the buildtools/checkdeps/graphdeps.py script.
Example:
buildtools/checkdeps/graphdeps.py --root=. --format=png \
--out=./webrtc.png --incl='^webrtc/modules/bitrate_controller->' \
--excl='chromium|base|external|testing|webrtc/test|\.h$|\.cc$'
will produce a neat webrtc.png image showcasing the dependencies
(according to the DEPS file) for the bitrate_controller module.
Some dependencies are filtered out for readability.
BUG=webrtc:5623
TESTED=Passing runs using:
buildtools/checkdeps/checkdeps.py --root=. talk
buildtools/checkdeps/checkdeps.py --root=. webrtc
R=tommi@webrtc.org
Review URL: https://codereview.webrtc.org/1796413002 .
Cr-Commit-Position: refs/heads/master@{#12008}
This is a good idea in general, because it makes ownership clearer,
but will also be very convenient when scoped_ptr is gone, since
unique_ptr doesn't have an .accept() method.
BUG=webrtc:5520
Review URL: https://codereview.webrtc.org/1800753003
Cr-Commit-Position: refs/heads/master@{#12002}