Commit Graph

320 Commits

Author SHA1 Message Date
ea1012b2a4 address comments from https://codereview.webrtc.org/1277263002/
TBR=juberti@webrtc.org,pthather@webrtc.org

Review URL: https://codereview.webrtc.org/1305113002

Cr-Commit-Position: refs/heads/master@{#9757}
2015-08-21 16:06:37 +00:00
fe3bc9d5ae Relanding "Generate localhost candidate when no STUN/TURN and portallocator has the right flag spefied."
Migrated from https://codereview.webrtc.org/1275703006/ which causes test failures for android. On android, loopback interface was used as local interface to generate candidates. Add a test case to make sure this won't be broken in the future.

Also observed some failures under content_browsertests in chromium.fyi bot but can't repro locally. Might just be temporary test issue.

BUG=webrtc:4517
TBR=pthatcher@webrtc.org

Review URL: https://codereview.webrtc.org/1299333003 .

Cr-Commit-Position: refs/heads/master@{#9746}
2015-08-20 15:48:27 +00:00
a1f590f3b6 Add helper class GuardedAsyncInvoker to protect against thread dying
BUG=webrtc:4909
R=tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1303443003 .

Cr-Commit-Position: refs/heads/master@{#9745}
2015-08-20 14:42:50 +00:00
d3de9c548d rtc::Bind: Capture method objects as scoped_refptr if they are ref counted
R=tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1300523004 .

Cr-Commit-Position: refs/heads/master@{#9744}
2015-08-20 14:04:01 +00:00
efefda6062 Move SystemInfo to rtc_base_approved and delete unused code.
This cl removes a lot of unused functionality in SystemInfo and reduces dependencies.
There's duplicate functionality in this class and WebRTC's CpuInfo class, so I'm consolidating the two implementations.
The CpuInfo interface will still exist since it's being used from Chrome to initialize the core count before the sandbox is engaged.
With this change, the SystemInfo class will get the benefit too of this initialization.

NOTRY=true
(using no try due to a dead android try bot)

Review URL: https://codereview.webrtc.org/1286163003

Cr-Commit-Position: refs/heads/master@{#9743}
2015-08-20 12:04:18 +00:00
41b3a384f4 Adds RTCCertificate, a reference counted object indirectly owning an SSLCertificate (by owning the SSLIdentity).
BUG=webrtc:4927
R=tommi@chromium.org, tommi@webrtc.org, torbjorng@webrtc.org

Review URL: https://codereview.webrtc.org/1299223002 .

Cr-Commit-Position: refs/heads/master@{#9741}
2015-08-20 10:16:04 +00:00
86cb923c20 In the past, P2PPortAllocator.enable_multiple_routes is the indicator whether we should bind to the any address. It's easy to translate that into a port allocator flag in P2PPortAllocator's ctor. Going forward, we have to depend on an asynchronous permission check to determine whether gathering local address is allowed or not, hence the current way of passing it through constructor approach won't work any more. The asynchronous check will trigger SignalNetowrksChanged so we could only check that inside DoAllocate.
Adapter enumeration disable should be a concept from Network. Network will be hooked up with media permission (mic/camera) to check whether gathering local address is allowed.

BUG=crbug.com/520101
R=juberti@webrtc.org, pthatcher@webrtc.org

Committed: ba9ab4cd8d

Committed: 47872ec90c

Review URL: https://codereview.webrtc.org/1284113003 .

Cr-Commit-Position: refs/heads/master@{#9736}
2015-08-19 17:57:57 +00:00
47872ec90c In the past, P2PPortAllocator.enable_multiple_routes is the indicator whether we should bind to the any address. It's easy to translate that into a port allocator flag in P2PPortAllocator's ctor. Going forward, we have to depend on an asynchronous permission check to determine whether gathering local address is allowed or not, hence the current way of passing it through constructor approach won't work any more. The asynchronous check will trigger SignalNetowrksChanged so we could only check that inside DoAllocate.
Adapter enumeration disable should be a concept from Network. Network will be hooked up with media permission (mic/camera) to check whether gathering local address is allowed.

BUG=crbug.com/520101
R=juberti@webrtc.org, pthatcher@webrtc.org

Committed: ba9ab4cd8d

Review URL: https://codereview.webrtc.org/1284113003 .

Cr-Commit-Position: refs/heads/master@{#9735}
2015-08-19 17:32:51 +00:00
5d69648782 Disabling TestUdpIPv6 on Linux
BUG=webrtc:4923, 522036
NOTRY=true

Review URL: https://codereview.webrtc.org/1298363002

Cr-Commit-Position: refs/heads/master@{#9734}
2015-08-19 11:42:07 +00:00
048e80caca Revert of Revert "Remove CpuMonitor and related, unused, code." (patchset #1 id:1 of https://codereview.webrtc.org/1287913004/ )
Reason for revert:
(retrying with my webrtc account...)
The reason for reverting is: Re-landing the change that removes the CpuMonitor class after having fixed the build issue in Chromium..

Original issue's description:
> Revert "Remove CpuMonitor and related, unused, code."
>
> This reverts commit 1a24012680f25440aa1d117373df2af14cdc2fc1.
>
> TBR=tommi@webrtc.org,pthatcher@webrtc.org
> BUG=
>
> This breaks
> http://build.chromium.org/p/chromium.webrtc.fyi/builders/Linux/builds/20148/steps/compile/logs/stdio
>
> Committed: a472e968c9

TBR=pthatcher@webrtc.org,guoweis@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

Review URL: https://codereview.webrtc.org/1290033005

Cr-Commit-Position: refs/heads/master@{#9733}
2015-08-19 11:00:04 +00:00
c844ca425e Move scoped_ptr.h to rtc_base_approved.
This is more a formality than anything since scoped_ptr.h is already being included from rtc_base_approved code.

BUG=
R=magjed@webrtc.org

Review URL: https://codereview.webrtc.org/1287203007 .

Cr-Commit-Position: refs/heads/master@{#9732}
2015-08-19 08:51:31 +00:00
a472e968c9 Revert "Remove CpuMonitor and related, unused, code."
This reverts commit 1a24012680f25440aa1d117373df2af14cdc2fc1.

TBR=tommi@webrtc.org,pthatcher@webrtc.org
BUG=

This breaks
http://build.chromium.org/p/chromium.webrtc.fyi/builders/Linux/builds/20148/steps/compile/logs/stdio

Review URL: https://codereview.webrtc.org/1287913004 .

Cr-Commit-Position: refs/heads/master@{#9730}
2015-08-19 00:08:50 +00:00
370c8848ad Revert "Generate localhost candidate when no STUN/TURN and portallocator has the right flag spefied."
This reverts commit 0a2955f227666efd87b2a303a69c083ef801c528.

Revert "In the past, P2PPortAllocator.enable_multiple_routes is the indicator whether we should bind to the any address. It's easy to translate that into a port allocator flag in P2PPortAllocator's ctor. Going forward, we have to depend on an asynchronous permission check to determine whether gathering local address is allowed or not, hence the current way of passing it through constructor approach won't work any more. The asynchronous check will trigger SignalNetowrksChanged so we could only check that inside DoAllocate."

This reverts commit ba9ab4cd8d2e8fbc068dc36b5e6f6331d7deeccf.

TBR=pthatcher@webrtc.org

Review URL: https://codereview.webrtc.org/1288843003 .

Cr-Commit-Position: refs/heads/master@{#9729}
2015-08-19 00:00:21 +00:00
ba9ab4cd8d In the past, P2PPortAllocator.enable_multiple_routes is the indicator whether we should bind to the any address. It's easy to translate that into a port allocator flag in P2PPortAllocator's ctor. Going forward, we have to depend on an asynchronous permission check to determine whether gathering local address is allowed or not, hence the current way of passing it through constructor approach won't work any more. The asynchronous check will trigger SignalNetowrksChanged so we could only check that inside DoAllocate.
Adapter enumeration disable should be a concept from Network. Network will be hooked up with media permission (mic/camera) to check whether gathering local address is allowed.

BUG=crbug.com/520101
R=juberti@webrtc.org, pthatcher@webrtc.org

Review URL: https://codereview.webrtc.org/1284113003 .

Cr-Commit-Position: refs/heads/master@{#9728}
2015-08-18 22:54:20 +00:00
1a24012680 Remove CpuMonitor and related, unused, code.
BUG=
R=pthatcher@webrtc.org

Review URL: https://codereview.webrtc.org/1298953002 .

Cr-Commit-Position: refs/heads/master@{#9727}
2015-08-18 20:14:45 +00:00
0a2955f227 Generate localhost candidate when no STUN/TURN and portallocator has the right flag spefied.
BUG=webrtc:4517
R=pthatcher@webrtc.org

Review URL: https://codereview.webrtc.org/1275703006 .

Cr-Commit-Position: refs/heads/master@{#9726}
2015-08-18 20:05:29 +00:00
3260133deb Fix -Wreorder compile error after https://codereview.webrtc.org/1189583002/
BUG=webrtc:4685, webrtc:4686
TBR=torbjorng@chromium.org,

Review URL: https://codereview.webrtc.org/1300683002 .

Cr-Commit-Position: refs/heads/master@{#9720}
2015-08-17 19:56:27 +00:00
b6d4ec4185 Support generation of EC keys using P256 curve and support ECDSA certs.
This CL started life here: https://webrtc-codereview.appspot.com/51189004

BUG=webrtc:4685, webrtc:4686
R=hbos@webrtc.org, juberti@webrtc.org

Review URL: https://codereview.webrtc.org/1189583002 .

Cr-Commit-Position: refs/heads/master@{#9718}
2015-08-17 12:09:10 +00:00
1147702958 WebRTC Bug 4865
Bug 4865: even without STUN/TURN, as long as the peer is on the open internet, the connectivity should work. This is actually a regression even for hangouts.

We need to issue the 0.0.0.0 candidate into Port::candidates_ and filter it out later. The reason is that when we create connection, we need a local candidate to match the remote candidate.

The same connection later will be updated with the prflx local candidate once the STUN ping response is received.

BUG=webrtc:4865
R=juberti@webrtc.org

Committed: 38f8893235

Review URL: https://codereview.webrtc.org/1274013002 .

Cr-Commit-Position: refs/heads/master@{#9717}
2015-08-15 16:28:46 +00:00
38f8893235 WebRTC Bug 4865
Bug 4865: even without STUN/TURN, as long as the peer is on the open internet, the connectivity should work. This is actually a regression even for hangouts.

We need to issue the 0.0.0.0 candidate into Port::candidates_ and filter it out later. The reason is that when we create connection, we need a local candidate to match the remote candidate.

The same connection later will be updated with the prflx local candidate once the STUN ping response is received.

BUG=webrtc:4865
R=juberti@webrtc.org

Review URL: https://codereview.webrtc.org/1274013002 .

Cr-Commit-Position: refs/heads/master@{#9708}
2015-08-14 05:24:12 +00:00
5e56c5927e DtlsIdentityStoreInterface added and the implementation is called DtlsIdentityStoreImpl (previously named without the -Impl bit and without an interface).
DtlsIdentityStoreImpl is updated to take KeyType into account, something which will be relevant after this CL lands:
https://codereview.webrtc.org/1189583002

The DtlsIdentityService[Interface] classes are about to be removed (to be removed when Chromium no longer implements and uses the interface). This was an unnecessary layer of complexity. The FakeIdentityService is now instead a FakeDtlsIdentityStore.
Where a service was previously passed around, a store is now passed around.

Identity generation is now commonly performed using DtlsIdentityStoreInterface. Previously, if a service was not specified, WebRtcSessionDescriptionFactory could fall back on its own generation code. Now, a store has to be provided for generation to occur.

For more information about the steps being taken to land this without breaking Chromium, see referenced bug.

BUG=webrtc:4899
R=magjed@webrtc.org, tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1176383004 .

Cr-Commit-Position: refs/heads/master@{#9696}
2015-08-11 08:33:27 +00:00
c937139176 Regenerate bind.h using pump.py
BUG=webrtc:4690
R=pthatcher@webrtc.org

Review URL: https://codereview.webrtc.org/1261093005 .

Cr-Commit-Position: refs/heads/master@{#9682}
2015-08-06 10:41:04 +00:00
5b4ce3391d DtlsIdentityStoreInterface added.
New PeerConnectionFactoryInterface::CreatePeerConnection taking both service and store added (old CreatePC signature still exists).

This is CL is part of an effort to land https://codereview.webrtc.org/1176383004 without breaking Chromium.
See bug for more information.

BUG=webrtc:4899
R=tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1268363002 .

Cr-Commit-Position: refs/heads/master@{#9680}
2015-08-05 14:55:35 +00:00
b19eba3d4b Fix Turn TCP port issue.
Sometimes the port still try to send stun packet when the connection is disconnected,
causing an assertion error.

BUG=4859

Review URL: https://codereview.webrtc.org/1247573002

Cr-Commit-Position: refs/heads/master@{#9671}
2015-08-03 17:23:40 +00:00
28bae02bd3 Remove CircularFileStream / replace it with CallSessionFileRotatingStream.
BUG=4838, 4839

Review URL: https://codereview.webrtc.org/1245143005

Cr-Commit-Position: refs/heads/master@{#9628}
2015-07-23 19:27:06 +00:00
934119111e Provides log sinks for rotating logs. Intended for use on mobile devices to record call logs.
BUG=4838

Review URL: https://codereview.webrtc.org/1230823009

Cr-Commit-Position: refs/heads/master@{#9615}
2015-07-22 19:12:22 +00:00
235c35f292 Implement store as an explicit atomic operation.
Using explicit atomic operations permits TSan to understand them and
prevents false positives.

Downgrading the atomic Load to acquire semantics. This reduces the
number of memory barriers inserted from two down to one at most.

Also renaming Load/Store to AcquireLoad/ReleaseStore.

BUG=chromium:512382
R=dvyukov@chromium.org, glider@chromium.org
TBR=tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1246073002

Cr-Commit-Position: refs/heads/master@{#9613}
2015-07-22 15:35:04 +00:00
65eb1c3df9 Disable testcase NatTcpTest.TestConnectOut
TBR=pthatcher
BUG=webrtc:4863

Review URL: https://codereview.webrtc.org/1248123002

Cr-Commit-Position: refs/heads/master@{#9610}
2015-07-22 13:28:33 +00:00
c5d0d95fd8 Ensuring that UDP TURN servers are always used as STUN servers.
This was already working in most cases, but not for some corner cases:
* If the PORTALLOCATOR_ENABLE_SHARED_SOCKET flag is not set
* If both a STUN server and TURN server are configured

I added unit tests for these cases, and centralized the code that gets
STUN server addresses in order to fix these and any related issues.

BUG=webrtc:4215

Review URL: https://codereview.webrtc.org/1215713003

Cr-Commit-Position: refs/heads/master@{#9596}
2015-07-16 17:22:28 +00:00
2d3b7e2173 AppRTCDemo file logging.
Adds logging macros to log logs to a file. Undeletes CircularFileStream
for that purpose.

BUG=
R=jiayl@webrtc.org, pbos@webrtc.org

Review URL: https://codereview.webrtc.org/1217473011 .

Cr-Commit-Position: refs/heads/master@{#9582}
2015-07-14 19:55:56 +00:00
ba35d05a49 Cleanup of iOS AudioDevice implementation
TBR=tkchin
BUG=webrtc:4789
TEST=modules_unittests --gtest_filter=AudioDeviceTest* and AppRTCDemo

Review URL: https://codereview.webrtc.org/1206783002 .

Cr-Commit-Position: refs/heads/master@{#9578}
2015-07-14 15:04:19 +00:00
5d6e58e76e Improvements to rtc::Bind
BUG=webrtc:4690

Support for rtc::scoped_ptr as return type.
Support for up to 6 input parameters.

R=pthatcher@webrtc.org, solenberg@webrtc.org

Review URL: https://codereview.webrtc.org/1226153003 .

Cr-Commit-Position: refs/heads/master@{#9569}
2015-07-13 09:16:47 +00:00
97f44e1bf6 Remove a superfluous qualifier on an inline method.
Fixes
..\..\third_party\webrtc/base/stringutils.h(295,49) :  warning(clang): extra qualification on member "empty_str" [-Wmicrosoft]

No behavior change, but makes the code more standards-conformant.

BUG=chromium:505296

Review URL: https://codereview.webrtc.org/1228193002

Cr-Commit-Position: refs/heads/master@{#9562}
2015-07-09 23:45:55 +00:00
e987a47f95 Removed some unused variables in Windows code.
Note: Regarding the ICMP6_CLOSE_FUNC variable in winping.cc,
Icmp6CloseHandle does not exist, and IcmpCloseHandle is the correct way
to close an IPv6 handle. Therefore the existing code is correct to use
close_ on both types of connections and this variable is unnecessary.

BUG=505319

Review URL: https://codereview.webrtc.org/1231653003

Cr-Commit-Position: refs/heads/master@{#9555}
2015-07-09 07:54:02 +00:00
a771bf8ee8 Fix some clang warnings with -Wmissing-braces in WebRTC.
Clang warns if there are missing braces around a subobject
initializer. The most common idiom that triggers this is:
  STRUCT s = {0};
if the first field of STRUCT is itself a struct. This can
be more simply written as:
  STRUCT s = {};
which also prevents the warning from firing.

Other instances of the warning have been fixed by adding
braces where appropriate.

BUG=505297
TBR=jiayl@webrtc.org

Review URL: https://codereview.webrtc.org/1216353002

Cr-Commit-Position: refs/heads/master@{#9529}
2015-07-02 00:52:18 +00:00
ecb9a70c2d Add AsyncInvoker files for chromium GN build
TBR=pthatcher@webrtc.org
BUG=4576

Review URL: https://codereview.webrtc.org/1196993003.

Cr-Commit-Position: refs/heads/master@{#9481}
2015-06-22 06:37:09 +00:00
2ee2439a1f Merge video_engine_core into webrtc target.
Merges the two video targets since video_engine is no longer usable
standalone.

BUG=webrtc:1695
R=mflodman@webrtc.org, stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1184763009.

Cr-Commit-Position: refs/heads/master@{#9479}
2015-06-22 05:57:26 +00:00
dc13abc331 Initially when the design was to do this experiment in browser, which doesn't have webrtc code, it requires some glue code to bridge the difference between what's available in webrtc::base and browser process. Now since we're moving to renderer process, we could reuse a lot of existing interfaces instead of rolling our own.
BUG=webrtc:4576
R=pthatcher@webrtc.org

Review URL: https://codereview.webrtc.org/1173353002.

Cr-Commit-Position: refs/heads/master@{#9466}
2015-06-18 21:44:46 +00:00
979e0b30f1 Define uint64 and int64 using long long.
This is to avoid typedef collisions with some compile configurations.
For more info, see
https://blogs.oracle.com/nike/entry/ilp64_lp64_llp64
http://www.unix.org/whitepapers/64bit.html

BUG=4497

Review URL: https://codereview.webrtc.org/1186093004

Cr-Commit-Position: refs/heads/master@{#9451}
2015-06-16 14:13:40 +00:00
524f78456c disable MacAsyncSocketTest::TestConnectFailIPv6
BUG=webrtc:4738
R=kjellander@webrtc.org
TBR=tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1179983003

Cr-Commit-Position: refs/heads/master@{#9439}
2015-06-15 14:03:58 +00:00
1fe120a6b9 Add triggered checks.
BUG=4590
R=guoweis@webrtc.org, juberti@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/51979004.

Cr-Commit-Position: refs/heads/master@{#9409}
2015-06-10 18:33:24 +00:00
f4baca50bb Set mtu for DTLS to 1280
Set mtu for DTLS to 1280, otherwise it defaults to 256 in recent
versions of openssl.

R=juberti@webrtc.org

Review URL: https://codereview.webrtc.org/1174483002.

Cr-Commit-Position: refs/heads/master@{#9407}
2015-06-10 07:46:05 +00:00
8f622a9f83 Locking is no longer required with BoringSSL.
BoringSSL handles locking internally, so the various callback methods
are no longer required in this case.

R=juberti@webrtc.org

Review URL: https://codereview.webrtc.org/1158573008

Cr-Commit-Position: refs/heads/master@{#9388}
2015-06-06 11:09:38 +00:00
e973c2a63b Remove win32toolhelp.h.
Unittests flake when run in parallel, and this file isn't used.

BUG=
R=tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/53659004

Cr-Commit-Position: refs/heads/master@{#9368}
2015-06-04 08:25:12 +00:00
a398020cba SSL_set_read_ahead no longer needed with BoringSSL.
In https://boringssl-review.googlesource.com/#/c/4820/ BoringSSL
deprecated "SSL_set_read_ahead". That commit has rolled into
Chromium/WebRTC, so calling the function is no longer needed.

BUG=chromium:447431
R=juberti@google.com

Review URL: https://webrtc-codereview.appspot.com/55559004

Cr-Commit-Position: refs/heads/master@{#9355}
2015-06-02 21:07:50 +00:00
770cc380eb Don't call CRYPTO_add in BoringSSL.
The old OpenSSL threading hooks were removed in favor of the library knowing
about threads internally. Instead of CRYPTO_add, use FOO_up_ref wrappers that
don't require reaching into the type.

BUG=none
R=jiayl@webrtc.org, juberti@google.com

Review URL: https://webrtc-codereview.appspot.com/54579004

Cr-Commit-Position: refs/heads/master@{#9324}
2015-05-28 22:36:37 +00:00
35448372be Disable reusing of ECDHE keys with NSS.
This provides support for ephemeral ECDHE keys when using NSS.

BUG=4689
R=juberti@google.com, pthatcher@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/56459005

Cr-Commit-Position: refs/heads/master@{#9323}
2015-05-28 22:29:17 +00:00
fec2c6d7eb Prevent potential double-free if srtp_create fails.
If srtp_create fails while adding streams, it deallocates the session
but doesn't clear the passed pointer which then could lead to a
double-free in the SrtpSession dtor.

The CL also adds locking for libsrtp initialization / shutdown.

BUG=4042
R=jiayl@webrtc.org, juberti@google.com, pthatcher@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/47319004

Cr-Commit-Position: refs/heads/master@{#9300}
2015-05-27 21:41:52 +00:00
5d55c98cd2 WebRTC 4521: Remove usage of deprecated timezone global variable
BUG=4521
R=pthatcher@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/56469004

Cr-Commit-Position: refs/heads/master@{#9285}
2015-05-26 18:53:39 +00:00
57e5fd2e60 PRESUBMIT: Improve PyLint check and add GN format check.
Add pylintrc file based on
https://code.google.com/p/chromium/codesearch#chromium/src/tools/perf/pylintrc
bit tightened up quite a bit (the one in depot_tools is far
more relaxed).

Remove a few excluded directories from pylint check and fixed/
suppressed all warnings generated.

Add GN format check + formatted all GN files using 'gn format'.
Cleanup redundant rules in tools/PRESUBMIT.py

TESTED=Ran 'git cl presubmit -vv', fixed the PyLint violations.
Ran it again with a modification in webrtc/build/webrtc.gni, formatted
all the GN files and ran it again.

R=henrika@webrtc.org, phoglund@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/50069004

Cr-Commit-Position: refs/heads/master@{#9274}
2015-05-25 10:55:50 +00:00