diff options
author | rch <rch@chromium.org> | 2015-11-03 21:25:28 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-11-04 05:26:09 +0000 |
commit | 99b644cbd649fe031f0fdf882177c89484a65e73 (patch) | |
tree | 1889ce6fbfe77f6090e707a7e58eb2701a2b02ee /net/quic/quic_session.h | |
parent | a4ca64d03fc86e257a06c62da05725623881d8a0 (diff) | |
download | chromium_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.h | 9 |
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. |