Land Recent QUIC Changes.

Eliminate separate boolean tracking socket writeability in
QuicConnection; query the writer instead. This CL tries to minimize
behavior changes, so no actual bugfixes. Connection will now check
writer's status instead of its local flag, so it will refuse to
write sooner.

Merge internal change: 59603011
https://codereview.chromium.org/138843003/


Change QUIC's SendAlgorithmInterface to have a separate UpdateRtt
method instead of passing it in with every acked packet.

This fixes a bug where the RTT was not being updated when
retransmitted packets were acked and one where a very large RTT could
be used when packets are acked before being sent.

Merge internal change: 59572874
https://codereview.chromium.org/138843003/

Break out of the loop in QuicSession::OnCanWrite if the QuicConnection
is congestion control blocked.  This fixes a weird form of starvation
among same-priority streams caused by streams often ending up in the
same order in the WriteBlockedList before and after
QuicSession::OnCanWrite.

Stop iterating through QUIC write blocked streams if the connection is
congestion-control blocked to avoid starvation of same-priority
streams.  Not flag protected.

Merge internal change: 59513911
https://codereview.chromium.org/139103002/


Fix a bug where the packet was put into unacked packets when it was
serialized and acked before being sent.

This was only ever seen on Chrome with very short RTTs.

Merge internal change: 59408566
https://codereview.chromium.org/133683010/


WriteBlockedList for QUIC that prioritizes Crypto and Headers streams
over data streams. Not flag protected.

Merge internal change: 59400238
https://codereview.chromium.org/137893008/


Create an interface for explicit notification of Dispatcher about
blocked writers; port TimeWaitListManager to the new interface.

Merge internal change: 59396227
https://codereview.chromium.org/138503006/


Remove WritePacket() from internal server's QuicDispatcher;
Integrating internal changes to clean up QuicDispatcher.

Merge internal change: 59346874
https://codereview.chromium.org/131743007/


Reset QUIC's retransmission counters whenever a new packet is acked
which updates the RTT estimate.

Previously the counters were only done when the left edge was acked,
which could cause excessive backoff when the connection was making
progress.

Merge internal change: 59292726
https://codereview.chromium.org/138273004/


Implement QuicPacketWriterWrapper. This lets us replace or embellish
the low-level writer without disturbing connections that keep a
pointer to the top level.

Merge internal change: 59287995
https://codereview.chromium.org/138273004/


Use basictypes.h consistenly in QUIC code instead of macros.h and/or
integral_types.h

Simply refactoring includes. Sync'ed with internal source code
for include of basictypes.h.

Merge internal change: 59287325
https://codereview.chromium.org/136853005/


Use the right priority when marking QUIC streams write blocked via
QuicFdWrapper::SetReady.  Not flag protected.

Used NULL instead of nullptr.

Fixed QuicReliableClientStreamTests to pass. Activated the
QuicReliableClientStream in the QuicSession so that session's
MarkWriteBlocked knows about the stream.

Merge internal change: 59263642
https://codereview.chromium.org/136523005/

R=rch@chromium.org

Review URL: https://codereview.chromium.org/131743009

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@245204 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 245204
Cleaned up the WebRtcAudioCapturer a bit.

This CL cleaned up the capturer a bit by moving the initialize() method to private and do NOT allow re-initializing the capturer when a new getUserMedia is called.
Instead, it creates a new capturer for each getUserMedia.

BUG=333285
TEST=content_unittests

Review URL: https://codereview.chromium.org/133903004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@245205 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 245205