Land Recent QUIC Changes.

Cleanup: remove BlockedWriterInterface from QuicPacketWriter.
No behavior changes.

Merge internal change: 60499316
https://codereview.chromium.org/135363006/


Properly trigger OnCanWrite processing from PacketDroppingTestWriter.
Re-enable the LargePostWithPacketLossAndBlockedSocket test.

Testing only.

Dialing back the loss from 30% to 10% seems to have stabilized the test.

Merge internal change: 60479729
https://codereview.chromium.org/131503016/


Use LOG_IF instead of LOG_IF_FIRST_N in a few places, as per avd's
suggestion.

Merge internal change: 60382807
https://codereview.chromium.org/149163004/


Change the default RTT from 60ms to 100ms, which is more typical of
internal server's.

Merge internal change: 60366147
https://codereview.chromium.org/146583006/


Remove an impossible check in QuicConnection for when a packet is
retransmitted before it is sent.

Updating the tests also found and fixed an edge case where a truncated
ack could cause the SentPacketManager to raise the high water mark above
a pending packet.

Merge internal change: 60169343
https://codereview.chromium.org/145123003/


Export primary insecure and secure QUIC config id via internal server
status pages.

Merge internal change: 60108488
https://codereview.chromium.org/137423015/


Export SCIDs, QUIC secret seed names and orbits to varz.

Merge internal change: 60107113
https://codereview.chromium.org/144033006/


Refactor QuicConnection to use explicit notification for getting onto
the write blocked list. Remove the PacketWriter interface from
QuicDispatcher.

Merge internal change: 60103466

Fix build. Build got broken by a race between presubmit tests and me
editing the file that was in the process of being submitted. :(

Merge internal change: 60104577
https://codereview.chromium.org/149263002/


Remove the word Payload from AddFrame methods in QUIC framer.

Merge internal change: 60101552
https://codereview.chromium.org/131513022/


Fixes QUIC's Cubic sender to use correct alpha when in Reno mode.

Merge internal change: 60088487
https://codereview.chromium.org/136453013/


Add DFATALs to QuicFramer branches where packet creation fails.

Merge internal change: 60077767

https://codereview.chromium.org/148073002/


Fix a QUIC bug where previously undecryptable packets were not decrypted
before sending out an ack when the encryption level changed.

Merge internal change: 60051502

Added logging for all frame types.

Added code to dump frames and packet_headers. Changes to make
QuicHttpStreamTest work.
https://codereview.chromium.org/144063012/

[email protected]

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247827 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/net/quic/quic_protocol.h b/net/quic/quic_protocol.h
index 1352c34..dc88446 100644
--- a/net/quic/quic_protocol.h
+++ b/net/quic/quic_protocol.h
@@ -537,6 +537,9 @@
                   QuicStreamOffset offset,
                   IOVector data);
 
+  NET_EXPORT_PRIVATE friend std::ostream& operator<<(
+      std::ostream& os, const QuicStreamFrame& s);
+
   // Returns a copy of the IOVector |data| as a heap-allocated string.
   // Caller must take ownership of the returned string.
   std::string* GetDataAsString() const;
@@ -681,12 +684,18 @@
     DCHECK_LE(error_code, std::numeric_limits<uint8>::max());
   }
 
+  NET_EXPORT_PRIVATE friend std::ostream& operator<<(
+      std::ostream& os, const QuicRstStreamFrame& r);
+
   QuicStreamId stream_id;
   QuicRstStreamErrorCode error_code;
   std::string error_details;
 };
 
 struct NET_EXPORT_PRIVATE QuicConnectionCloseFrame {
+  NET_EXPORT_PRIVATE friend std::ostream& operator<<(
+      std::ostream& os, const QuicConnectionCloseFrame& c);
+
   QuicErrorCode error_code;
   std::string error_details;
 };
@@ -697,6 +706,9 @@
                   QuicStreamId last_good_stream_id,
                   const std::string& reason);
 
+  NET_EXPORT_PRIVATE friend std::ostream& operator<<(
+      std::ostream& os, const QuicGoAwayFrame& g);
+
   QuicErrorCode error_code;
   QuicStreamId last_good_stream_id;
   std::string reason_phrase;
@@ -745,6 +757,9 @@
         goaway_frame(frame) {
   }
 
+  NET_EXPORT_PRIVATE friend std::ostream& operator<<(
+      std::ostream& os, const QuicFrame& frame);
+
   QuicFrameType type;
   union {
     QuicPaddingFrame* padding_frame;