summaryrefslogtreecommitdiffstats
path: root/net/quic/quic_session.h
diff options
context:
space:
mode:
authorrch <rch@chromium.org>2015-11-03 21:25:28 -0800
committerCommit bot <commit-bot@chromium.org>2015-11-04 05:26:09 +0000
commit99b644cbd649fe031f0fdf882177c89484a65e73 (patch)
tree1889ce6fbfe77f6090e707a7e58eb2701a2b02ee /net/quic/quic_session.h
parenta4ca64d03fc86e257a06c62da05725623881d8a0 (diff)
downloadchromium_src-99b644cbd649fe031f0fdf882177c89484a65e73.zip
chromium_src-99b644cbd649fe031f0fdf882177c89484a65e73.tar.gz
chromium_src-99b644cbd649fe031f0fdf882177c89484a65e73.tar.bz2
Landing Recent QUIC changes until: Fri Oct 30 22:23:58 2015 +0000
Change QuicAckFrame's revived_packets to be a single QuicPacketNumber. QUIC now ignores all but the last packet revived by FEC. Consumes 24 bytes less and is faster and simpler. Merge internal change: 106729701 https://codereview.chromium.org/1431693002/ Fix a comment in quic_dispatcher.cc to mention the correct method. Merge internal change: 106724344 https://codereview.chromium.org/1418213011/ Add a new method to QuicSpdySession Add a public method OnHeadersHeadOfLineBlocking() which does nothing. This method is used to replace EXPECT_CALL(Log()) in quic headers stream test. Merge internal change: 106716057 https://codereview.chromium.org/1410243007/ Simplify QUIC stateless rejects by latching the value of FLAGS_enable_quic_stateless_reject_support directly in the QuicCryptoServerStream constructor instead of requiring that it be passed in via a setter. Merge internal change: 106714904 https://codereview.chromium.org/1411223011/ Add support of serving SCT on the server side in QUIC, gated by QUIC_VERSION_30. Add support of serving SCT in QUIC. Flag-protected. The protocol works like below: 1. The client sends CSCT tag associated with an empty value in client hello to indicate that it supports cert transparency. 2. If so, the server responds with the signed certificate timestamp (SCT) using the same tag. Merge internal change: 106709176 https://codereview.chromium.org/1416583005/ Put a space between available window value and ">=" in log output. Merge internal change: 106687764 https://codereview.chromium.org/1424313006/ Remove FLAGS_quic_session_map_threshold_for_stateless_rejects, and instead always use stateless rejects when the peer supports it and when FLAGS_gfe2_reloadable_flag_enable_quic_stateless_reject_support is true. Merge internal change: 106656452 https://codereview.chromium.org/1417033008/ Create a new data structure StreamSequencerBuffer for QuicStreamSequencer. Currently QuicStreamSequencer is using std::list to store frames, which could buffer a series of tiny stream frames if the frames arrive so. And they are read out independently as very small strings never coalesced. StreamSequencerBuffer coalesce these small strings and read them out as a whole. It is a circular stream buffer with random write and in-sequence read. It consists of an array of pointers pointing to memory block de/allocated using new/delete and a list of GapRange objects to indicate the missing data between the data already been written into the buffer. And it keeps tracking the total bytes having been read out. Merge internal change: 106593539 https://codereview.chromium.org/1409053006/ Remove unused method OnPacketSent from QuicPacketDroppingTestWriter::Delegate. Merge internal change: 106492030 https://codereview.chromium.org/1422563005/ Remove unused member variables. No functional change. Remove unused QuicClock from TcpCubicSender and TcpCubicBytesSender. Merge internal change: 106458891 https://codereview.chromium.org/1406023017/ Remove unused input argument. No functional change expected. Merge internal change: 106451721 https://codereview.chromium.org/1410013010/ Change QuicWallTime to have microsecond granularity. Merge internal change: 106446616 https://codereview.chromium.org/1421873007/ On client address changes, only migrate QUIC connections when client address changes are considered to be caused by NATs. Add an enum PeerAddressChangeType. On each peer address change, the change type is determined before the connection migration. Merge internal change: 106444524 https://codereview.chromium.org/1420623004/ Make QUIC stateless rejects work in the face of packet loss by storing the SREJ packet(s) in the QuicTimeWaitListManager so they can be retransmitted. Store QUIC SREJ packet(s) in the QuicTimeWaitListManager. Merge internal change: 106433678 https://codereview.chromium.org/1424653008/ Remove QuicPacketCreator::fec_group_number_; replace it with QuicFecGroupInterface::FecGroupNumber(). No behavior change expected. Merge internal change: 106432163 https://codereview.chromium.org/1409813006/ Remove unused QuicErrorCode QUIC_PACKET_FOR_NONEXISTENT_STREAM. No behavior change. Merge internal change: 106425553 https://codereview.chromium.org/1408963003/ Merge GetIncomingDynamicStream and GetDynamicStream into a single GetOrCreateDynamicStream method in QuicSession. No behavior change. Merge internal change: 106421704 https://codereview.chromium.org/1422533006/ Rename MockHelper to the more descriptive (and more consistent with other Mock classes) MockConnectionHelper. Merge internal change: 106419223 https://codereview.chromium.org/1433433003/ Remove the QuicPacketGenerator from the PacketTooLarge EndToEndTest and no longer allow too large packets to be created by the QuicPacketCreator. Merge internal change: 106414015 https://codereview.chromium.org/1411953005/ fix a comment in quic_session.h Merge internal change: 106400931 https://codereview.chromium.org/1408183008/ Cleanup: Call OnWriteError instead of directly closing the connection when failing to send a QUIC version negotiation packet. No behavior change. Merge internal change: 106397442 https://codereview.chromium.org/1424043003/ Removing quic_allow_oversized_packets_for_test by generating and writing packets without a QuicConnection. Test-only change. Merge internal change: 106394664 https://codereview.chromium.org/1415743010/ Change QuicFramer::EncryptPayload to return the length of the encrypted payload rather than a new EncryptedPacket. Merge internal change: 106389203 Fix QUIC end to end test Merge internal change: 106366330 https://codereview.chromium.org/1421703005/ Remove the kMaxSegmentSize constant from QUIC's TcpCubicSender and TcpCubicBytesSender and replace with the identical kDefaultTCPMSS. Also fixes an error where the bandwidth resumption check was incorrectly using kMaxPacketSize. Changes bandwidth resumption CWNDs by less than 1%. Merge internal change: 106356338 https://codereview.chromium.org/1413193009/ Correct (enlarge) the situations when QuicPacketGenerator::MaybeSendFecPacketAndCloseGroup calls packet_creator_.StopFecProtectingPackets. Merge internal change: 106333315 https://codereview.chromium.org/1417533011/ Factor QuicCryptoClientStream APIs into QuicCryptoClientStreamBase. Merge internal change: 106327944 https://codereview.chromium.org/1425363002/ Add new version QUIC_VERSION_29 in which streams honor RST_STREAM + NO_ERROR. Override QuicDataStream OnStreamReset method to honor QUIC_STREAM_NO_ERROR on QUIC_VERSION_29 and later versions: close write side only and leave read side open to read response data from server. Merge internal change: 106313860 https://codereview.chromium.org/1413143004/ Review URL: https://codereview.chromium.org/1421853006 Cr-Commit-Position: refs/heads/master@{#357761}
Diffstat (limited to 'net/quic/quic_session.h')
-rw-r--r--net/quic/quic_session.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/net/quic/quic_session.h b/net/quic/quic_session.h
index 8c3f079..cbdfb05 100644
--- a/net/quic/quic_session.h
+++ b/net/quic/quic_session.h
@@ -53,6 +53,7 @@ class NET_EXPORT_PRIVATE QuicSession : public QuicConnectionVisitorInterface {
HANDSHAKE_CONFIRMED,
};
+ // Takes ownership of |connection|.
QuicSession(QuicConnection* connection, const QuicConfig& config);
~QuicSession() override;
@@ -225,9 +226,11 @@ class NET_EXPORT_PRIVATE QuicSession : public QuicConnectionVisitorInterface {
// underlying counter.
QuicStreamId GetNextOutgoingStreamId();
- ReliableQuicStream* GetIncomingDynamicStream(QuicStreamId stream_id);
-
- ReliableQuicStream* GetDynamicStream(const QuicStreamId stream_id);
+ // Returns existing stream with id = |stream_id|. If no such stream exists,
+ // and |stream_id| is a peer-created id, then a new stream is created and
+ // returned. However if |stream_id| is a locally-created id and no such stream
+ // exists, the connection is closed.
+ ReliableQuicStream* GetOrCreateDynamicStream(QuicStreamId stream_id);
// This is called after every call other than OnConnectionClose from the
// QuicConnectionVisitor to allow post-processing once the work has been done.