889 Commits

Author SHA1 Message Date
decurtis@webrtc.org
2bffc3cb72 When clearing the priority message queue, don't copy an item to itself.
This avoids a memcpy to overlapping---in this case the same---memory locations.

BUG=4100
R=juberti@webrtc.org, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8449}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8449 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-21 01:45:20 +00:00
guoweis@webrtc.org
9dfe7aac2e Fix WebRTC IP leaks.
WebRTC binds to individual NICs and listens for incoming Stun packets. Sending stun through this specific NIC binding could make OS route the packet differently hence exposing non-VPN public IP.

The fix here is
1. to bind to any address (0:0:0:0) instead. This way, the routing will be the same as how chrome/http is.
2. also, remove the any all 0s addresses which happens when we bind to all 0s.

BUG=4276
R=juberti@webrtc.org

Committed: https://code.google.com/p/webrtc/source/detail?r=8418

Committed: https://code.google.com/p/webrtc/source/detail?r=8419

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

Cr-Commit-Position: refs/heads/master@{#8420}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8420 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-18 20:27:45 +00:00
guoweis@webrtc.org
f358aea7bf Fix WebRTC IP leaks.
WebRTC binds to individual NICs and listens for incoming Stun packets. Sending stun through this specific NIC binding could make OS route the packet differently hence exposing non-VPN public IP.

The fix here is
1. to bind to any address (0:0:0:0) instead. This way, the routing will be the same as how chrome/http is.
2. also, remove the any all 0s addresses which happens when we bind to all 0s.

BUG=4276
R=juberti@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8418}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8418 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-18 18:44:14 +00:00
decurtis@webrtc.org
bfa3c7253f Don't call g_thread_init on glib >=2.31.0
g_thread_init() is deprecated in glib 2.31.0 and later. This will call
g_thread_ini() only when compiling against older versions of glib.

BUG=1971,chromium:253566
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8400}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8400 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-17 21:23:13 +00:00
guoweis@webrtc.org
b08f4045ec Fix issue 4061.
Issue was that the longest 0 detection wasn't done when there is only one 0 octet. The purpose of this detection is to make sure we don't also compression 0 octet sequences which are not longest.

BUG=4061
R=juberti@webrtc.org, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8397}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8397 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-17 19:01:14 +00:00
guoweis@webrtc.org
d3b453be17 Remove the incremental IP address behavior from virtualsocketserver
VirtualSocketServer, when binding to any address (all 0s), will assign a unique IP address by incrementing the IP address, resulted in 0.0.0.1. However, this breaks the testing of 4276 where we bind to all 0s and expect the local address should remain all 0s.

BUG=4276
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8370}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8370 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-14 00:44:20 +00:00
andresp@webrtc.org
ff689be3c0 Use std::min and std::max instead of self-defined functions such as rtc::_min/_max.
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8347}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8347 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-12 11:55:32 +00:00
phoglund@webrtc.org
006521d5bd Makes libjingle_peerconnection_android_unittest run on networkless devices.
PeerConnectionTest.java currently works, but only on a device with
network interfaces up. This is not a problem for desktop, but it is a
problem when running on Android devices since the devices in the lab
generally don't have network (due to the chaotic radio environment in
the device labs, devices are simply kept in flight mode).

The test does work if one modifies this line in the file
webrtc/base/network.cc:

bool ignored = ((cursor->ifa_flags & IFF_LOOPBACK) ||
                IsIgnoredNetwork(*network));

If we remove the IFF_LOOPBACK clause, the test starts working on
an Android device in flight mode. This is nice - we're running the
call and packets interact with the OS network stack, which is good
for this end-to-end test. We can't just remove the clause though since
having loopback is undesirable for everyone except the test (right)?
so we need to make this behavior configurable.

This CL takes a stab at a complete solution where we pass a boolean
all the way through the Java PeerConnectionFactory down to the
BasicNetworkManager. This comes as a heavy price in interface
changes though. It's pretty out of proportion, but fundamentally we
need some way of telling the network manager that it is on Android
and in test mode. Passing the boolean all the way through is one way.

Another way might be to put the loopback filter behind an ifdef and
link a custom libjingle_peerconnection.so with the test. That is hacky
but doesn't pollute the interfaces. Not sure how to solve that in GYP
but it could mean some duplication between the production and
test .so files.

It would have been perfect to use flags here, but then we need to
hook up gflags parsing to some main() somewhere to make sure the
flag gets parsed, and make sure to pass that flag in our tests.
I'm not sure how that can be done.

Making the loopback filtering conditional is exactly how we solved the
equivalent problem in content_browsertests in Chrome, and it worked
great.

That's all I could think of.

BUG=4181
R=perkj@webrtc.org, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8344}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8344 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-12 09:24:25 +00:00
pthatcher@webrtc.org
3ee4fe5a94 Re-land: Add API to get negotiated SSL ciphers
This CL adds an API to the SSL stream adapters and transport channels to get the SSL cipher that was negotiated with the remote peer.

The previously approved CL https://webrtc-codereview.appspot.com/26009004/ was reverted in https://webrtc-codereview.appspot.com/40689004/ due to compilation issues while rolling into Chromium.
As the new method has landed in Chromium in https://crrev.com/bc321c76ace6e1d5a03440e554ccb207159802ec, this should be safe to land here now.

BUG=3976
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8343}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8343 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-11 22:35:30 +00:00
kwiberg@webrtc.org
11426dc719 Don't rely on webrtc/base/scoped_ptr.h to include stuff for you
webrtc/base/scoped_ptr.h doesn't need to include webrtc/base/common.h
anymore, but a couple of its users were relying on it to pull in other
things for them. Fix that, and remove the now really unnecessary
webrtc/base/common.h include.

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

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

Cr-Commit-Position: refs/heads/master@{#8333}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8333 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-11 14:31:19 +00:00
kwiberg@webrtc.org
d7472b52d6 base/arraysize.h: We use size_t, so need to include stddef.h
R=andrew@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8317}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8317 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-10 22:47:14 +00:00
tommi@webrtc.org
1a072f93eb Address comments from previous review round for rtc::Event.
R=andresp@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8313}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8313 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-10 12:28:12 +00:00
andresp@webrtc.org
53d9012faf Clean kForever from basictypes and move it to the interfaces that actually have it.
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8296}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8296 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-09 14:19:39 +00:00
tommi@webrtc.org
4c0fd965ce Move rtc::Event to rtc_base_approved. We need an event implementation in WebRTC that allows us to specify whether it's manually reset or automatically. EventWrapper currently doesn't support it and it adds a heap allocation + vtable, so rtc::Event is the lighter of the two.
I'm also tidying rtc::Event up a bit. Removing member variable that's not needed on all platforms and moving the mutex itself up in the member list given the recent alignment scare on Mac.

R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8292}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8292 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-09 10:23:39 +00:00
pbos@webrtc.org
8cf9bdb3fa Remove USE_WEBRTC_DEV_BRANCH.
talk/ and webrtc/ are hosted in the same repository and it no longer
makes sense to support building talk/ without the corresponding webrtc/
catalog.

R=bjornv@webrtc.org, juberti@webrtc.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#8291}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8291 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-09 10:17:12 +00:00
jlmiller@webrtc.org
ec499beaf5 Increase testclient timeout from 1 to 5 seconds
BUG=4182
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8285}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8285 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-07 22:38:16 +00:00
tommi@webrtc.org
fe19699a20 Revert 8260 "Base RWLockWrapper on rtc::SharedExclusiveLock."
Unfortunately this caused channel teardown to hang.
More details in email(s).

> Base RWLockWrapper on rtc::SharedExclusiveLock.
>
> Also moves rtc::Event and rtc::SharedExclusiveLock to rtc_base_approved.
>
> R=tommi@webrtc.org
> BUG=
>
> Review URL: https://webrtc-codereview.appspot.com/38889004

TBR=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8284}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8284 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-07 22:36:19 +00:00
tommi@webrtc.org
2eb1660791 Switch ThreadCheckerImpl over to using PlatformThreadRef.
Like PlatformThreadId, this type is borrowed from Chromium.
The difference between the two is that PlatformThreadRef is pthread_t on posix platforms.
On Windows PlatformThreadRef and PlatformThreadId are the same thing.

The reason for this switch is pretty crazy.  On Chromium's "Mac 10.9 dbg" bot,
we have been seeing the following code:

ThreadCheckerImpl::ThreadCheckerImpl() : valid_thread_(CurrentThreadId()) {
  fprintf(stderr, "*** valid=%d\n", valid_thread_);
  valid_thread_ = CurrentThreadId();
  fprintf(stderr, "*** valid after=%d\n", valid_thread_);
}

print this:

*** valid=946872320
*** valid after=5647

This is for the same thread checker instance.

What's worse is that printing out what CurrentThreadId was returning, yielded that it was always returning 5647.

After switching over to pthread_t on Mac, this stopped happening.
So, to remove the current hack, reinstate the class on Mac and take a look at the next problem, I'm switching to pthread_t.
Really looking forward to truly getting to the bottom of this.

Tbr-ing since the build is essentially broken (we can't roll).

TBR=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8283}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8283 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-07 19:18:16 +00:00
tommi@webrtc.org
2bf0e90c9d Revert 8275 "This CL adds an API to the SSL stream adapters and ..."
I'm reverting the patch due to compilation issues. It would be great if we could make sure Chromium is ready for the patch before we land it in WebRTC.
As is, we're trying to roll webrtc into Chromium and we can't (this is not the only reason though).  I might reland this after the roll, depending on how that goes though.
Here's an example failure:

e:\b\build\slave\win_gn\build\src\jingle\glue\channel_socket_adapter_unittest.cc(77) : error C2259: 'jingle_glue::MockTransportChannel' : cannot instantiate abstract class
        due to following members:
        'bool cricket::TransportChannel::GetSslCipher(std::string *)' : is abstract
        e:\b\build\slave\win_gn\build\src\third_party\webrtc\p2p\base\transportchannel.h(107) : see declaration of 'cricket::TransportChannel::GetSslCipher'
ninja: build stopped: subcommand failed.

> This CL adds an API to the SSL stream adapters and transport channels to get the SSL cipher that was negotiated with the remote peer.
> 
> BUG=3976
> R=davidben@chromium.org, juberti@webrtc.org, pthatcher@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/26009004

TBR=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8282}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8282 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-07 11:13:18 +00:00
bjornv@webrtc.org
95a32ec098 Revert 8271 "VirtualSocketServer out-of-order issue with closing..."
Failed on Linux_Memcheck bot.
http://chromegw/i/client.webrtc/builders/Linux%20Memcheck/builds/3182

> VirtualSocketServer out-of-order issue with closing TCP sockets
> 
> https://webrtc-codereview.appspot.com/41449004 added a TURN TCP
> allocation release test which was disabled as it triggered an assert
> in the turnserver.
> 
> This was caused by VirtualSockerServer delivering the last TCP packet
> after closing the connection. Calling
>     VirtualSocketServer::SendTcp
> and
>     VirtualSocket::Close
> from TestTurnTCPReleaseAllocation led to the following order of
> messages in VirtualSocket::OnMessage:
>     MSG_ID_DISCONNECT
>     MSG_ID_PACKET
> 
> This is out of order and triggers an assert in turnserver.cc since the
> socket from which the message arrives has already been discarded,
> subsequently breaking the test.
> 
> In VirtualSocketServer::Disconnect the MSG_ID_DISCONNECT is posted to the
> msg_queue immediately, thus getting ahead of any (slightly delayed)
> actual packets.
> 
> Maybe PostAt(network_delay_ + 1, ...) would be better?
> 
> Re-enables TestTurnTCPReleaseAllocation.
> 
> BUG=
> R=juberti@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/34759004

TBR=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8280}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8280 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-07 06:47:21 +00:00
pthatcher@webrtc.org
1d11c8202b This CL adds an API to the SSL stream adapters and transport channels to get the SSL cipher that was negotiated with the remote peer.
BUG=3976
R=davidben@chromium.org, juberti@webrtc.org, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8275}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8275 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-06 19:47:39 +00:00
tommi@webrtc.org
13a0e184ee Temporarily disable a couple of ThreadChecker tests on Mac.
TBR=magjed@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8272}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8272 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-06 16:39:18 +00:00
pthatcher@webrtc.org
4770437da9 VirtualSocketServer out-of-order issue with closing TCP sockets
https://webrtc-codereview.appspot.com/41449004 added a TURN TCP
allocation release test which was disabled as it triggered an assert
in the turnserver.

This was caused by VirtualSockerServer delivering the last TCP packet
after closing the connection. Calling
    VirtualSocketServer::SendTcp
and
    VirtualSocket::Close
from TestTurnTCPReleaseAllocation led to the following order of
messages in VirtualSocket::OnMessage:
    MSG_ID_DISCONNECT
    MSG_ID_PACKET

This is out of order and triggers an assert in turnserver.cc since the
socket from which the message arrives has already been discarded,
subsequently breaking the test.

In VirtualSocketServer::Disconnect the MSG_ID_DISCONNECT is posted to the
msg_queue immediately, thus getting ahead of any (slightly delayed)
actual packets.

Maybe PostAt(network_delay_ + 1, ...) would be better?

Re-enables TestTurnTCPReleaseAllocation.

BUG=
R=juberti@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8271}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8271 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-06 16:33:47 +00:00
tommi@webrtc.org
b5a1252e66 Hack to work around the current issues with rolling WebRTC into chromium.
In order to figure out the issue with the Mac 10.9 debug bot, this patch disables the ThreadChecker class on Mac in debug builds. For diagnostic purposes, it instead prints out when there's a thread mismatch. I'm also adding a DCHECK in case fetching the current thread id ever returns 0.

R=magjed@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8269}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8269 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-06 15:39:16 +00:00
pbos@webrtc.org
75025434bf Base RWLockWrapper on rtc::SharedExclusiveLock.
Also moves rtc::Event and rtc::SharedExclusiveLock to rtc_base_approved.

R=tommi@webrtc.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#8260}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8260 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-06 08:33:15 +00:00
tommi@webrtc.org
d43bdf50c5 Rewrite ThreadPosix.
This is the same change as already made for Windows:
https://webrtc-codereview.appspot.com/37069004/

* Remove "dead" and "alive" variables.
* Remove critical section
* Remove implementation of SetNotAlive()
* Always set thread name
* Add thread checks for correct usage.

* Changed AudioDeviceMac to create/start/stop/delete thread objects for playout and recording, inside the respective start and stop method.  The reason for this is because the AudioDeviceMac instance is currently being created on one thread and the above Start/Stop methods are being called on a different thread.  So, my change makes creation, start/stop, deletion of the thread objects always happen on the same thread.

I'm making CurrentThreadId() in rtc_base_approved more visible so that it can be used  from there instead of inside webrtc. Down the line we will have more thread concepts in rtc_base_approved, so I put a TODO for myself to move this functionality to there once we do.

R=henrika@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8235}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8235 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-03 16:30:21 +00:00
guoweis@webrtc.org
2444d9605a Control the max IPv6 Networks used by WebRTC.
BUG=
R=juberti@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8209}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8209 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-30 00:09:42 +00:00
kwiberg@webrtc.org
73ca1945ec Update base/scoped_ptr.h from system_wrappers/interface/scoped_ptr.h
The latter file was more up-to-date. The files are now identical
with the following exceptions:

  * The namespace used (rtc vs. webrtc).

  * The name of the include guard.

  * base/scoped_ptr.h still has two extra methods, accept() and use().

  * base/scoped_ptr.h still includes webrtc/base/common.h even though
    it doesn't need it itself, since several .cc files expect to get
    it for free by incuding base/scoped_ptr.h. This is of course bad
    manners, and the "unused" include will be removed in a future CL.

A later CL will remove system_wrappers/interface/scoped_ptr.h.

R=andrew@webrtc.org

Committed: https://code.google.com/p/webrtc/source/detail?r=8147
And reverted again, because out-of-tree code using this file was defining nullptr to 0: https://code.google.com/p/webrtc/source/detail?r=8149

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

Cr-Commit-Position: refs/heads/master@{#8196}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8196 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-29 09:13:17 +00:00
perkj@webrtc.org
827d7e806a Change AsyncInvoker to store its closure in a scoped_refptr instead of using a raw pointer.
This is just a cosmetic change and does not solve a particular bug.

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

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

Cr-Commit-Position: refs/heads/master@{#8194}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8194 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-29 08:54:17 +00:00
pkasting@chromium.org
e7a4a12f83 Add arraysize() macro from Chromium, and make use of it in a few places.
This not only shortens some test code, it makes it more robust against changing
the lengths of the arrays later and forgetting to update the length constants
(which bit me).

BUG=none
TEST=none
R=hta@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8191}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8191 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-28 21:37:13 +00:00
guoweis@webrtc.org
a094cac11f Add stats for network merge.
Currently, in ipc_network_manager.cc, the UMA WebRTC.PeerConnection.IPv4Interfaces and its IPv6
counter part counts the addresses, instead of the interfaces as when
chromium delivers available networks to WebRTC, each address is wrapped
inside an individual network object.

The plan is to replace the current MergeNetworkList with the new one once it's rolled into chromium.

BUG=
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8188}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8188 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-28 19:34:17 +00:00
kjellander@webrtc.org
7d2b6a9346 Enable Clang warning implicit-fallthrough and annotate the code.
BUG=4242
R=henrik.lundin@webrtc.org, stefan@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8187}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8187 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-28 18:38:13 +00:00
kjellander@webrtc.org
7aef80c6d1 GN: Remove webrtc_base target in favor for rtc_base.
The last reference to the old target name was
removed in https://crrev.com/7c9149860a8a0ca24350d2e80dbc280990a0cbb7

R=perkj@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8179}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8179 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-28 07:55:45 +00:00
kjellander@webrtc.org
d7e34e1086 Make it easier to use external libyuv + cleanup GYP files.
It is now easier to use an external libyuv library.
Fix some GYP errors.
Remove the temporary webrtc_base target (depends on
https://codereview.chromium.org/865603002/ being landed
first).

BUG=4185
R=andresp@webrtc.org, andrew@webrtc.org, perkj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8154 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-26 19:17:26 +00:00
tommi@webrtc.org
04cd466bd5 Move ThreadChecker into rtc_base_approved.
To do this, I'm removing ThreadChecker's dependency on the 'Thread' class, so that the checker works with any thread and doesn't rely on TLS.
Also simplifying CriticalSection's implementation on Windows since a critical section on Windows already knows what thread currently owns the lock.

BUG=
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8151 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-26 15:27:29 +00:00
kwiberg@webrtc.org
6f200b5b87 Temporarily revert r8147 ("Update base/scoped_ptr.h from system_wrappers/interface/scoped_ptr.h")
Some out-of-tree code that uses base/scoped_ptr.h is defining nullptr
to 0, which causes an obvious compilation error and perhaps other
subtle problems. I'm hoping to get that sorted out and re-land this CL
soon.

TBR=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8149 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-26 13:03:32 +00:00
henrik.lundin@webrtc.org
b6fab2b1cd Introduce rtc::CheckedDivExact
Use the new method to replace local ones in AudioEncoder{Opus,Isac}.

COAUTHOR:kwiberg@webrtc.org

R=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8148 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-26 11:08:53 +00:00
kwiberg@webrtc.org
19eb4e4b86 Update base/scoped_ptr.h from system_wrappers/interface/scoped_ptr.h
The latter file was more up-to-date. The files are now identical
with the following exceptions:

  * The namespace used (rtc vs. webrtc).

  * The name of the include guard.

  * base/scoped_ptr.h still has two extra methods, accept() and use().

  * base/scoped_ptr.h still includes webrtc/base/common.h even though
    it doesn't need it itself, since several .cc files expect to get
    it for free by incuding base/scoped_ptr.h. This is of course bad
    manners, and the "unused" include will be removed in a future CL.

A later CL will remove system_wrappers/interface/scoped_ptr.h.

R=andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8147 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-26 08:57:57 +00:00
davidben@webrtc.org
36d5c3cb44 Leave BIO_METHOD non-const.
This breaks building against OpenSSL upstream, which is still supported on iOS.
This reverts part of https://webrtc-codereview.appspot.com/34649004.

BUG=none
R=juberti@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8132 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-22 23:06:17 +00:00
jlmiller@webrtc.org
ea1c84285c Correct GetDriveType error handling.
BUG=4020
R=brucedawson@google.com, juberti@webrtc.org, pthatcher@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8127 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-22 17:44:19 +00:00
kjellander@webrtc.org
c429b824b3 GN: Prepare to remove webrtc_base target
Keep the webrtc_base target temporarily while waiting for
Chromium to pick up this revision. Then we'll update Chromium
and remove the webrtc_base target for real.

This should have been a part of https://code.google.com/p/webrtc/source/detail?r=7140

R=pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8117 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-21 20:22:33 +00:00
kwiberg@webrtc.org
f88f88edde Remove webrtc/base/compile_assert.h
It was previously removed as part of r8058, and reinstated in r8064
because of outside dependencies. Those dependencies have now been
dealt with, so the removal should stick this time.

R=andrew@webrtc.org, pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8099 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-20 08:46:55 +00:00
decurtis@webrtc.org
d7de1209ae Re-enable the messagequeue unittests. These were commented out at one point but never reenabled.
R=hellner@chromium.org, henrike@webrtc.org
CC=juberti@webrtc.org,pthatcher@webrtc.org
BUG=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8086 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-16 17:52:53 +00:00
turaj@webrtc.org
e5a31e1bf5 Revert removing of compile_assert.h.
In https://webrtc-codereview.appspot.com/39469004 compile_assert.h is removed and that resulted in some bots to break. There is a pending CL to fix the issue https://chromereviews.googleplex.com/141837013/
, meanwhile I revert this change.

TBR=kwiberg@google.com

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8064 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-14 17:17:11 +00:00
kwiberg@webrtc.org
2ebfac5649 Remove COMPILE_ASSERT and use static_assert everywhere
COMPILE_ASSERT is no longer needed now that we have C++11's
static_assert.

R=aluebs@webrtc.org, andrew@webrtc.org, hellner@chromium.org, henrike@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8058 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-14 10:51:54 +00:00
pbos@webrtc.org
f7a5893f80 Combine RegKeyTests to prevent parallel execution.
Executing these tests in parallel causes failures due to conflicting
registry keys, combining them to unblock launching a parallel win32 bot.
Ideally these keys would be generated differently per-process and not
conflict at all (so it can be run in parallel repeatedly alongside itself).

BUG=4162
R=kjellander@webrtc.org
TBR=pthatcher@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8055 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-14 09:03:16 +00:00
kwiberg@webrtc.org
af9d56f38c Unify the two copies of template_util.h
This patch basically deletes webrtc/base/template_util.h (which is the
more outdated copy, although there are only cosmetical differences)
and moves webrtc/system_wrappers/source/template_util.h to take its
place.

The reunified header uses the rtc namespace like the old
webrtc/base/template_util.h, rather than the webrtc namespace like
webrtc/system_wrappers/source/template_util.h.

R=aluebs@webrtc.org, andrew@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8050 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-13 20:32:04 +00:00
kwiberg@webrtc.org
3df38b442f Unify the two copies of compile_assert.h
This patch basically deletes webrtc/base/compile_assert.h (which is
the more outdated copy) and moves
webrtc/system_wrappers/source/compile_assert.h to take its place.

R=aluebs@webrtc.org, andrew@webrtc.org, tommi@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8048 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-13 11:37:48 +00:00
pthatcher@webrtc.org
69472e711c Add a dummy implemenation of SChannelAdapter::SetMode that makes sure that StartSSL fails if the mode is set to DTLS.
Also, update SslSocketFactory to fail if StartSSL fails.

R=juberti@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8014 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-07 18:01:07 +00:00
henrike@webrtc.org
c10eceab6e Always tag SRTP_PROTECTION_PROFILE and BIO_METHOD as const.
The BIO_METHODs ought to be const so they can go into rodata; BoringSSL makes
BIO_new take a const BIO_METHOD *, so there's no need for it to be non-const.
Also set SRTP_PROTECTION_PROFILE as const so we can constify those within
BoringSSL (https://boringssl-review.googlesource.com/#/c/2720/)

BUG=none
R=henrike@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8013 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-07 17:59:28 +00:00