803 Commits

Author SHA1 Message Date
kthelgason
a90879b64f Reland of move all reference to carbon api (patchset #1 id:1 of https://codereview.webrtc.org/2316563002/ )
Reason for revert:
Chromium build issues have been resolved.

Original issue's description:
> Revert of Remove all reference to carbon api (patchset #2 id:20001 of https://codereview.webrtc.org/2299633002/ )
>
> Reason for revert:
> Breaks chromium build
>
> Original issue's description:
> > Remove all reference to carbon api
> >
> > BUG=webrtc:6282
> >
> > Committed: https://crrev.com/dbd8b6bec4143c940b2f2ca8cd85c25d17327964
> > Cr-Commit-Position: refs/heads/master@{#14080}
>
> TBR=magjed@webrtc.org,mflodman@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:6282
>
> Committed: https://crrev.com/b096aa7fd375a980daab3a986596548ca5de2a1c
> Cr-Commit-Position: refs/heads/master@{#14081}

TBR=magjed@webrtc.org,mflodman@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:6282

Review-Url: https://codereview.webrtc.org/2321493002
Cr-Commit-Position: refs/heads/master@{#14125}
2016-09-08 10:34:45 +00:00
ehmaldonado
4016a0b2e8 GN: Move variables from //build_overrides/webrtc.gni to //webrtc/build/webrtc.gni
There is no clear reason to have them in build_overrides, and
webrtc/build seems to be a better place.

Also, delete build_overrides/webrtc.gni

NOTRY=True
BUG=webrtc:5949

Review-Url: https://codereview.webrtc.org/2309253004
Cr-Commit-Position: refs/heads/master@{#14108}
2016-09-07 13:50:23 +00:00
kthelgason
b096aa7fd3 Revert of Remove all reference to carbon api (patchset #2 id:20001 of https://codereview.webrtc.org/2299633002/ )
Reason for revert:
Breaks chromium build

Original issue's description:
> Remove all reference to carbon api
>
> BUG=webrtc:6282
>
> Committed: https://crrev.com/dbd8b6bec4143c940b2f2ca8cd85c25d17327964
> Cr-Commit-Position: refs/heads/master@{#14080}

TBR=magjed@webrtc.org,mflodman@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6282

Review-Url: https://codereview.webrtc.org/2316563002
Cr-Commit-Position: refs/heads/master@{#14081}
2016-09-06 07:44:03 +00:00
kthelgason
dbd8b6bec4 Remove all reference to carbon api
BUG=webrtc:6282

Review-Url: https://codereview.webrtc.org/2299633002
Cr-Commit-Position: refs/heads/master@{#14080}
2016-09-06 07:38:21 +00:00
kwiberg
d313403564 rtc::Buffer: Let SetData and AppendData accept anything with .data() and .size()
In addition to setting or appending from another Buffer, which was
already possible, this allows for e.g. std::vector and rtc::ArrayView
arguments.

Review-Url: https://codereview.webrtc.org/2293983002
Cr-Commit-Position: refs/heads/master@{#14073}
2016-09-05 14:46:24 +00:00
ehmaldonado
e9cc686293 GN Templates: Move common_inherited_config to the template.
Remove common_inherited_config from the targets and add it to the
template instead.

BUG=webrtc:6187
NOTRY=True

Review-Url: https://codereview.webrtc.org/2311843002
Cr-Commit-Position: refs/heads/master@{#14069}
2016-09-05 13:10:23 +00:00
kwiberg
bd4317263a Restrict the 1-argument ArrayView constructor to types with .size() and .data()
Before this change, the argument still needed those methods, but not
having them resulted in a compilation error. Now, it results in this
constructor being removed from the overload set.

This currently makes no difference, but I'm about to publish a CL that
breaks without this.

Review-Url: https://codereview.webrtc.org/2312473002
Cr-Commit-Position: refs/heads/master@{#14068}
2016-09-05 11:20:58 +00:00
ehmaldonado
7a2ce0b738 GN Templates: Move common_config to the template.
Remove common_config from the targets' config and add
it to the template instead.

BUG=webrtc:6187
NOTRY=True

Review-Url: https://codereview.webrtc.org/2300413002
Cr-Commit-Position: refs/heads/master@{#14063}
2016-09-05 08:35:48 +00:00
Viktor Palmkvist
4ec6a0ceae Reland of Initial version of file wrapper
Fixes a conversion issue.

BUG=webrtc:6177
R=sprang@webrtc.org
TBR=mflodman@webrtc.org

patch from issue 2214763002 at patchset 450001 (http://crrev.com/2214763002#ps450001)

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

Cr-Commit-Position: refs/heads/master@{#14044}
2016-09-02 11:38:43 +00:00
ehmaldonado
38a2132b02 GN: Introduce templates.
Defines the rtc_executable, rtc_source_set, rtc_test and
rtc_static_library templates.

These templates provide no functionality yet, but will enable common
configuration to be introduced, avoiding repetition in every target

Changes summary:
- Prepend rtc_ to test, source_set, executable and static_library targets
- Change "configs -= [" to "suppressed_configs += ["
- Include webrtc/build/webrtc.gni where it wasn't included yet
- Delete import("//testing/test.gni"), since rtc_test makes it unnecessary.

BUG=webrtc:6187
TBR=henrik.lundin@webrtc.org,tommi@webrtc.org
NOTRY=True

Review-Url: https://codereview.webrtc.org/2301053002
Cr-Commit-Position: refs/heads/master@{#14043}
2016-09-02 11:10:41 +00:00
kwiberg
ac554eebb9 Add functions to interact with ASan and MSan, and some sample uses
The sample uses are from when I debugged bug 617124. The change in neteq_network_stats_unittest.cc is a fix for a minor unrelated bug found by the try bots when I tried to land this CL (a test was passing uninitialized packet data to NetEq).

BUG=chromium:617124

Review-Url: https://codereview.webrtc.org/2293893002
Cr-Commit-Position: refs/heads/master@{#14034}
2016-09-02 07:39:40 +00:00
Magnus Jedvert
0bade0df3b AVFoundation Video Capturer: Remove thread jump when delivering frames
WebRTC no longer has any restriction on what thread frames should be
delivered on. One possible problem with this CL is that NV21->I420
conversion and scaling is done on the thread that delivers frames, which
might cause fps regressions.

R=nisse@webrtc.org, perkj@webrtc.org, tkchin@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#14021}
2016-09-01 13:15:12 +00:00
palmkvist
e8a6697a5e Revert of Initial version of new file wrapper (patchset #26 id:490001 of https://codereview.webrtc.org/2214763002/ )
Reason for revert:
Breaks things upstream

Original issue's description:
> Initial version of new file wrapper
>
> BUG=webrt:6177
> R=mflodman@webrtc.org, sprang@webrtc.org
>
> Committed: https://crrev.com/d714d19d224b356ab2f14ed7ba6e872a4df6c84f
> Cr-Commit-Position: refs/heads/master@{#14016}

TBR=mflodman@webrtc.org,sprang@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrt:6177

Review-Url: https://codereview.webrtc.org/2299983002
Cr-Commit-Position: refs/heads/master@{#14017}
2016-09-01 11:15:44 +00:00
Viktor Palmkvist
d714d19d22 Initial version of new file wrapper
BUG=webrt:6177
R=mflodman@webrtc.org, sprang@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#14016}
2016-09-01 09:44:17 +00:00
ossu
5955e24fe8 Added an empty() method to rtc::Buffer
I'll be using it in a separate CL in a bit.

Review-Url: https://codereview.webrtc.org/2290343002
Cr-Commit-Position: refs/heads/master@{#14001}
2016-08-31 15:40:08 +00:00
perkj
84bd5c73da Do not build task_queue.cc and include from webrtc_overrides in Chrome.
This is step 2 of the plan below.

The modified plan
1. First land unmodified task_queue.h into webrtc_override in Chrome
2. Modify build files in the webrtc repo to include the task_queue.h and task_queue.cc from webrtc_overrides. This will breaks webrtc Chrome FYI.
3. Combine a roll of webrtc to Chrome and  a the cl in https://codereview.chromium.org/2293913003/ into one  cl.
The combined cl will roll in build files from  2 and  add task_queue.cc in webrtc_overrides and build task_queue_unittest.cc as part of content_unittests to test task_queue.cc in webrtc_overrides.
4... Start using task queues in webrtc........

BUG=webrtc:5687

Review-Url: https://codereview.webrtc.org/2289203002
Cr-Commit-Position: refs/heads/master@{#13983}
2016-08-31 06:01:17 +00:00
ehmaldonado
3e3b6f2805 Remove Chromium Clang warnings only on Windows.
A previous CL (https://codereview.webrtc.org/2281513002) broke Windows, Mac and Linux bots in WebRTC's Chromium FYI, by suppressing these warnings when they hadn't been set.

This CL fixes it suppressing warnings only on Windows.

Example failures:
https://build.chromium.org/p/chromium.webrtc.fyi/builders/Win%20Builder/builds/6540
https://build.chromium.org/p/chromium.webrtc.fyi/builders/Mac%20Builder/builds/16588
https://build.chromium.org/p/chromium.webrtc.fyi/builders/Linux%20Builder/builds/9655

BUG=webrtc:6255
NOTRY=True

Review-Url: https://codereview.webrtc.org/2284333002
Cr-Commit-Position: refs/heads/master@{#13951}
2016-08-29 09:56:10 +00:00
ehmaldonado
d02fe4b53b GN: Fix windows clang errors. Attempt 2.
BUG=webrtc:6255
NOTRY=True

Review-Url: https://codereview.webrtc.org/2281513002
Cr-Commit-Position: refs/heads/master@{#13942}
2016-08-26 20:31:34 +00:00
zhihuang
d82eee0675 Log how often DTLS negotiation failed because of incompatible ciphersuites.
Log the DTLS handshake error code in OpenSSLStreamAdapter.
Forward the error code to WebRTCSession with the Signals.
This part is only for the WebRTC native code.
To make it work, need another CL for Chromium.

BUG=webrtc:5959

Review-Url: https://codereview.webrtc.org/2167363002
Cr-Commit-Position: refs/heads/master@{#13940}
2016-08-26 18:25:09 +00:00
ivoc
4805231613 Moved format_macros.h from rtc_base to rtc_base_approved.
BUG=webrtc:3806
NOTRY=True

Review-Url: https://codereview.webrtc.org/2272003002
Cr-Commit-Position: refs/heads/master@{#13921}
2016-08-25 11:43:52 +00:00
ehmaldonado
4bc4d2747b GN: Fix Windows Clang errors
BUG=webrtc:6255
NOTRY=True

Review-Url: https://codereview.webrtc.org/2274713005
Cr-Commit-Position: refs/heads/master@{#13919}
2016-08-25 11:15:46 +00:00
hbos
e29352bb34 Refactor certificate stats collection, added SSLCertificateStats.
The code that extracts certificate stats from an SSLCertificate and its
certificate chain is moved into SSLCertificate::GetStats. The stats
collector code loops through the resulting SSLCertificateStats and
creates the StatsReports for those stats.

This will allow the new stats collector to reuse GetStats in a future
CL.

BUG=chromium:627816, chromium:629436

Review-Url: https://codereview.webrtc.org/2259283002
Cr-Commit-Position: refs/heads/master@{#13917}
2016-08-25 10:52:46 +00:00
nisse
76f91cd08f Add ThreadChecker to the TimestampAligner class.
BUG=

Review-Url: https://codereview.webrtc.org/2270773002
Cr-Commit-Position: refs/heads/master@{#13882}
2016-08-24 08:58:50 +00:00
aleloi
16f55a10c4 Migrated GN target :g711_test
Migrated GN target :g711_test from
webrtc/modules/audio_coding/codecs/g711/g711.gypi

NOTRY=True

BUG=webrtc:6191

Review-Url: https://codereview.webrtc.org/2273623002
Cr-Commit-Position: refs/heads/master@{#13864}
2016-08-23 15:08:30 +00:00
kwiberg
2e486462e0 RTC_CHECK and RTC_DCHECK macros for C
So that we don't have to use assert(). Includes one sample call site.

NOTRY=true
BUG=chromium:617124

Review-Url: https://codereview.webrtc.org/2262173002
Cr-Commit-Position: refs/heads/master@{#13862}
2016-08-23 12:54:31 +00:00
kjellander
ec5c9061c8 GN: Fix errors when some variables are set to non-default values.
BUG=webrtc:6223
TESTED=Passing generation with:
gn gen out/Default --args='rtc_build_expat=false rtc_build_json=false rtc_build_libyuv=false'
NOTRY=True

Review-Url: https://codereview.webrtc.org/2257753002
Cr-Commit-Position: refs/heads/master@{#13827}
2016-08-19 08:07:33 +00:00
Honghai Zhang
e05bcc22b3 Do not switch a connection if the new connection is not ready to send packets.
There is no benefit of making such switches.

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

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

Cr-Commit-Position: refs/heads/master@{#13789}
2016-08-17 01:19:21 +00:00
philipel
75c287e383 Fix incorrect example in mod_ops.h
TBR=mflodman@webrtc.org
NOTRY=True
BUG=

Review-Url: https://codereview.webrtc.org/2247253003
Cr-Commit-Position: refs/heads/master@{#13783}
2016-08-16 13:38:23 +00:00
hbos
8f956dead6 FakeTiming added, an implementation of Timing that can be used for
tests.

Note: The webrtc/base/test/ folder is new.

Currently not used, I intend to use this in another CL.

BUG=chromium:627816
NOPRESUBMIT=TRUE
NOTRY=TRUE

Review-Url: https://codereview.webrtc.org/2238073003
Cr-Commit-Position: refs/heads/master@{#13750}
2016-08-15 14:00:06 +00:00
Taylor Brandstetter
6f82535f45 Enabling IPv6 socket recv timestamp test, and making less flaky.
The test worked by sleeping a certain time, then checking that the
difference between recv timestamps before and after the sleep was
within some margin of the requested sleep time.

However, this means that imprecision of SleepMs makes the test flaky.
This source of flakiness can be removed by comparing to the actual
time slept instead of the requested time.

Also making the margin larger, to further reduce the likelihood of
flakiness.

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

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

Cr-Commit-Position: refs/heads/master@{#13733}
2016-08-11 22:38:40 +00:00
Taylor Brandstetter
c8762a838f Remove StartSSLWithServer from SSLStreamAdapter.
It's not used by anything any more. We only use SSLStreamAdapter in
the mode where it verifies the peer's certificate using a signaled
digest.

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

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

Cr-Commit-Position: refs/heads/master@{#13730}
2016-08-11 19:01:58 +00:00
sakal
d30e0ad3e7 Session based capturing for Camera2Capturer.
BUG=webrtc:6148
TBR=tommi@webrtc.org

Review-Url: https://codereview.webrtc.org/2186253002
Cr-Commit-Position: refs/heads/master@{#13723}
2016-08-11 08:00:43 +00:00
Magnus Jedvert
6e6e70f55b Add magjed@webrtc.org as owner of webrtc/base/java/
magjed@ is the author of two out of three files in webrtc/base/java
(ThreadUtils.java and Size.java). They were originally created in
webrtc/api/android/java, but were moved to base/ in order to be
accessible from e.g. webrtc/modules/audio_device/android/java.

TBR=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13707}
2016-08-10 11:49:35 +00:00
jbauch
e3eff7c062 Check that table evenly divides 256 when generating random string.
This prevents biased modulo arithmetic when selecting a character for a
random value from the provided table.

BUG=webrtc:5870

Review-Url: https://codereview.webrtc.org/2115793003
Cr-Commit-Position: refs/heads/master@{#13683}
2016-08-09 00:13:44 +00:00
jbauch
912f46a348 Don't silently ignore RNG failures when creating strings / numbers.
RTC_CHECK in functions that return the random value.

BUG=webrtc:6072

Review-Url: https://codereview.webrtc.org/2119003002
Cr-Commit-Position: refs/heads/master@{#13682}
2016-08-08 23:33:14 +00:00
jbauch
d3b953db30 Remove NSS SecureRandomGenerator.
All platforms should be using OpenSSL/BoringSSL.

BUG=

Review-Url: https://codereview.webrtc.org/2115123002
Cr-Commit-Position: refs/heads/master@{#13681}
2016-08-08 23:23:00 +00:00
sakal
f4433ef14e Add argument support for stand-alone WebRTC tracing.
BUG=webrtc:6186

Review-Url: https://codereview.webrtc.org/2215153003
Cr-Commit-Position: refs/heads/master@{#13670}
2016-08-08 11:10:17 +00:00
danilchap
b7b9dca4e4 Reland Enable socketservers unittests on windows.
Original CL: https://codereview.webrtc.org/2199193004/
Revert CL: https://codereview.webrtc.org/2209333002/

NOTRY=true
BUG=webrtc:6167,webrtc:6178

Review-Url: https://codereview.webrtc.org/2218853002
Cr-Commit-Position: refs/heads/master@{#13654}
2016-08-05 12:55:49 +00:00
ehmaldonado
9f1771b729 Revert of Enable socketservers unittests on windows (patchset #7 id:260001 of https://codereview.webrtc.org/2199193004/ )
Reason for revert:
Win64 Debug seems to be broken because of this CL.

https://build.chromium.org/p/client.webrtc/builders/Win64%20Debug

The Win32SocketTest.TestGetSetOptionsIPv4 test is failing with

[ RUN      ] Win32SocketTest.TestGetSetOptionsIPv4
(win32socketserver.cc:299): GetRemoteAddress: unable to get remote addr, socket=672
(winping.cc:262): IcmpSendEcho(, 65507): 0

Full logs at

https://build.chromium.org/p/client.webrtc/builders/Win64%20Debug/builds/8444/steps/webrtc_nonparallel_tests/logs/stdio

I filed a bug at https://bugs.chromium.org/p/webrtc/issues/detail?id=6178

Original issue's description:
> Enable socketservers unittests on windows.
> failing tests disabling moved to ifdefs within the test files from build files.
>
> R=tommi@webrtc.org
>
> Committed: https://crrev.com/e51e11910faddb00921a8bb274f0d9374d55011f
> Cr-Commit-Position: refs/heads/master@{#13623}

TBR=tommi@webrtc.org,danilchap@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.

Review-Url: https://codereview.webrtc.org/2209333002
Cr-Commit-Position: refs/heads/master@{#13642}
2016-08-04 16:18:18 +00:00
jbauch
cb56065c62 Add support for GCM cipher suites from RFC 7714.
GCM cipher suites are optional (disabled by default) and can be enabled
through "PeerConnectionFactoryInterface::Options".

If compiled with Chromium (i.e. "ENABLE_EXTERNAL_AUTH" is defined), no
GCM ciphers can be used yet (see https://crbug.com/628400).

BUG=webrtc:5222, 628400

Review-Url: https://codereview.webrtc.org/1528843005
Cr-Commit-Position: refs/heads/master@{#13635}
2016-08-04 12:20:38 +00:00
Danil Chapovalov
e51e11910f Enable socketservers unittests on windows.
failing tests disabling moved to ifdefs within the test files from build files.

R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13623}
2016-08-03 13:14:48 +00:00
Sami Kalliomaki
d3235f0cd9 Re-order and remove unused Java imports.
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13608}
2016-08-02 13:44:19 +00:00
danilchap
8a0b1287cd Fix CopyOnWriteBuffer::cdata to return const pointer
to prevent unexpected data modification.

Review-Url: https://codereview.webrtc.org/2189013002
Cr-Commit-Position: refs/heads/master@{#13583}
2016-07-30 20:42:35 +00:00
danilchap
d8a9c5306b Implement CopyOnWriteBuffer move using scoped_refptr move
instead of using temporary swap solution.

BUG=webrtc:5556

Review-Url: https://codereview.webrtc.org/2191863002
Cr-Commit-Position: refs/heads/master@{#13582}
2016-07-30 19:39:32 +00:00
Danil Chapovalov
70cfc14af6 Adds move assignment operator to scoped_refptr
Implementation borrowed from chromium.

BUG=webrtc:5556
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13577}
2016-07-29 17:15:10 +00:00
skvlad
c309e0e3ea Don't stop sending media on EWOULDBLOCK
This change makes WebRTC no longer stop sending video when we receive an
EWOULDBLOCK error from the operating system. This was previously
causing calls on a slow link (where the first hop is slow) to rapidly
oscillate between starting and stopping video.

We still do need to stop sending packets if there is no known good
connection we can use for that. We used to generate a synthetic
EWOULDBLOCK error in that case. This CL replaces it with a different
code (ENOTCONN); EWOULDBLOCK no longer stops the stream but ENOTCONN
does.

I've updated all the places where we seemed to be generating EWOULDBLOCK
for reasons other than some buffer been full; please give it a thorough
look in case I missed something.

R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13566}
2016-07-29 00:15:30 +00:00
sakal
bb19a60832 Fix a memory leak where EventLogger is created two times in the event tracer.
R=tommi@webrtc.org

Review-Url: https://codereview.webrtc.org/2179903004
Cr-Commit-Position: refs/heads/master@{#13536}
2016-07-26 17:39:15 +00:00
magjed
d9c7f8d3a8 Use NullSocketServer instead of PhysicalSocketServer in SignalThread
BUG=webrtc:6125

Review-Url: https://codereview.webrtc.org/2164333002
Cr-Commit-Position: refs/heads/master@{#13525}
2016-07-26 10:03:39 +00:00
skvlad
843b6f503f Fix a crash in the event tracing shutdown path
This CL fixes a crash that could happen when JSON event tracing is
shutting down. The cause of the crash was the fact that the logger
thread function was returning 'true', causing the platform thread to run
it repeatedly even though that wasn't the intention.

Usually the EventLogger::Stop() function would set the event requesting
the logging thread to clean up and close the file, and then immediately
call PlatformThread::Stop() which would stop the outer loop. The Log()
function would only run once and everything behaves as expected.

However, if a context switch happens between the shutdown_event_.Set()
and logging_thread_.Stop() calls in EventLogger::Stop(), the logger
thread function would close the file and exit the Log() method, while
PlatformThread will rerun it again. So the Log() function runs twice,
and the second time output_file_ is NULL which either causes the DCHECK
to fail (in debug builds) or the fprintf() to crash with SIGSEGV (in
release builds).

The fix simply changes the return value of the thread function to false
so it never runs twice.

R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13510}
2016-07-23 04:45:45 +00:00
André Susano Pinto
02a5797908 Reland of "Protect MessageQueue stop field with a critical section to avoid data races." (refs/heads/master@{#13430}).
It was reverted in "refs/heads/master@{#13431}" due to breaking Chrome FYI bots.
Fix for chromium was submmited in https://codereview.chromium.org/2159753002.

This reverts commit a2c900877d8338130210c99fec1c8e8e59defea4.

R=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13508}
2016-07-22 11:30:17 +00:00