From a4dcff92312b99670e9a19657f881b00a0404e69 Mon Sep 17 00:00:00 2001 From: rtenneti Date: Mon, 29 Sep 2014 11:16:08 -0700 Subject: Land Recent QUIC Changes. Remove loss detection from QuicConfig now that connection options has replaced it. Merge internal change: 75952172 Chromium specific changes: + Deleted enable_quic_time_based_loss_detection from NetworkSession params. + Deleted enable-quic-time-based-loss-detection and disable-quic-time-based-loss-detection command line switches. https://codereview.chromium.org/591323003/ Do not timeout QUIC connections when settings the timeouts from InitializeSession(). Protected by FLAG_quic_timeouts_only_from_alarms Removes FLAG_quic_timeouts_require_activity which was somewhat broken. Merge internal change: 75927669 https://codereview.chromium.org/605903002/ Factor out the QUIC timeout alarm setting logic from the CheckForTimeout method into a new SetTimeout method. - no behavior change, simply moving QUIC timeout alarm code. Merge internal change: 75915264 https://codereview.chromium.org/593193005/ Add a timestamp field to QUIC's CachedNetworkParams proto message. Context in b/17357338, follow-up CL will store CachedNetworkParams and copy into newly created STKs. Merge internal change: 75897792 https://codereview.chromium.org/604173002/ Call QuicSentPacketManager's OnPacketSent method and make OnRetransmittedPacket and OnSerializedPacket private. Merge internal change: 75830237 https://codereview.chromium.org/593193004/ Change the return type of QuicConnection::CheckForTimeout from bool to void since it is unused. Merge internal change: 75724127 https://codereview.chromium.org/604163002/ Test-only. Remove calls to OnSerializedPacket from QuicSentPacketManagerTest, in preparation for OnSerializedPacket to be removed. Merge internal change: 75716236 https://codereview.chromium.org/600823006/ R=rch@chromium.org, sky@chromium.org Added sky@ for OWNERS approval for chrome/browser and chrome/common changes Review URL: https://codereview.chromium.org/605733006 Cr-Commit-Position: refs/heads/master@{#297208} --- chrome/browser/io_thread.cc | 27 --------------------------- chrome/browser/io_thread.h | 8 -------- chrome/browser/io_thread_unittest.cc | 30 ------------------------------ 3 files changed, 65 deletions(-) (limited to 'chrome/browser') diff --git a/chrome/browser/io_thread.cc b/chrome/browser/io_thread.cc index 5ce6ca7..d42723e 100644 --- a/chrome/browser/io_thread.cc +++ b/chrome/browser/io_thread.cc @@ -122,8 +122,6 @@ const char kQuicFieldTrialEnabledGroupName[] = "Enabled"; const char kQuicFieldTrialHttpsEnabledGroupName[] = "HttpsEnabled"; const char kQuicFieldTrialPacketLengthSuffix[] = "BytePackets"; const char kQuicFieldTrialPacingSuffix[] = "WithPacing"; -const char kQuicFieldTrialTimeBasedLossDetectionSuffix[] = - "WithTimeBasedLossDetection"; // The SPDY trial composes two different trial plus control groups: // * A "holdback" group with SPDY disabled, and corresponding control @@ -1015,8 +1013,6 @@ void IOThread::InitializeNetworkSessionParamsFromGlobals( ¶ms->enable_websocket_over_spdy); globals.enable_quic.CopyToIfSet(¶ms->enable_quic); - globals.enable_quic_time_based_loss_detection.CopyToIfSet( - ¶ms->enable_quic_time_based_loss_detection); globals.quic_always_require_handshake_confirmation.CopyToIfSet( ¶ms->quic_always_require_handshake_confirmation); globals.quic_disable_connection_pooling.CopyToIfSet( @@ -1169,9 +1165,6 @@ void IOThread::ConfigureQuicGlobals( bool enable_quic = ShouldEnableQuic(command_line, quic_trial_group); globals->enable_quic.set(enable_quic); if (enable_quic) { - globals->enable_quic_time_based_loss_detection.set( - ShouldEnableQuicTimeBasedLossDetection(command_line, quic_trial_group, - quic_trial_params)); globals->quic_always_require_handshake_confirmation.set( ShouldQuicAlwaysRequireHandshakeConfirmation(quic_trial_params)); globals->quic_disable_connection_pooling.set( @@ -1334,26 +1327,6 @@ double IOThread::GetAlternateProtocolProbabilityThreshold( } // static -bool IOThread::ShouldEnableQuicTimeBasedLossDetection( - const CommandLine& command_line, - base::StringPiece quic_trial_group, - const VariationParameters& quic_trial_params) { - if (command_line.HasSwitch(switches::kEnableQuicTimeBasedLossDetection)) - return true; - - if (command_line.HasSwitch(switches::kDisableQuicTimeBasedLossDetection)) - return false; - - if (LowerCaseEqualsASCII( - GetVariationParam(quic_trial_params, "enable_time_based_loss_detection"), - "true")) - return true; - - return quic_trial_group.ends_with( - kQuicFieldTrialTimeBasedLossDetectionSuffix); -} - -// static bool IOThread::ShouldQuicAlwaysRequireHandshakeConfirmation( const VariationParameters& quic_trial_params) { return LowerCaseEqualsASCII( diff --git a/chrome/browser/io_thread.h b/chrome/browser/io_thread.h index 801d48d..c4f9a8e 100644 --- a/chrome/browser/io_thread.h +++ b/chrome/browser/io_thread.h @@ -185,7 +185,6 @@ class IOThread : public content::BrowserThreadDelegate { Optional enable_websocket_over_spdy; Optional enable_quic; - Optional enable_quic_time_based_loss_detection; Optional enable_quic_port_selection; Optional quic_always_require_handshake_confirmation; Optional quic_disable_connection_pooling; @@ -353,13 +352,6 @@ class IOThread : public content::BrowserThreadDelegate { base::StringPiece quic_trial_group, const VariationParameters& quic_trial_params); - // Returns true if QUIC time-base loss detection should be negotiated during - // the QUIC handshake. - static bool ShouldEnableQuicTimeBasedLossDetection( - const base::CommandLine& command_line, - base::StringPiece quic_trial_group, - const VariationParameters& quic_trial_params); - // Returns true if QUIC should always require handshake confirmation during // the QUIC handshake. static bool ShouldQuicAlwaysRequireHandshakeConfirmation( diff --git a/chrome/browser/io_thread_unittest.cc b/chrome/browser/io_thread_unittest.cc index 1563e9e..6120e3d 100644 --- a/chrome/browser/io_thread_unittest.cc +++ b/chrome/browser/io_thread_unittest.cc @@ -127,7 +127,6 @@ TEST_F(IOThreadTest, EnableQuicFromFieldTrialGroup) { net::HttpNetworkSession::Params params; InitializeNetworkSessionParams(¶ms); EXPECT_TRUE(params.enable_quic); - EXPECT_FALSE(params.enable_quic_time_based_loss_detection); EXPECT_EQ(1350u, params.quic_max_packet_length); EXPECT_EQ(1.0, params.alternate_protocol_probability_threshold); EXPECT_EQ(default_params.quic_supported_versions, @@ -181,35 +180,6 @@ TEST_F(IOThreadTest, EnablePacingFromFieldTrialParams) { EXPECT_EQ(options, params.quic_connection_options); } -TEST_F(IOThreadTest, EnableTimeBasedLossDetectionFromCommandLine) { - command_line_.AppendSwitch("enable-quic"); - command_line_.AppendSwitch("enable-quic-time-based-loss-detection"); - - ConfigureQuicGlobals(); - net::HttpNetworkSession::Params params; - InitializeNetworkSessionParams(¶ms); - EXPECT_TRUE(params.enable_quic_time_based_loss_detection); -} - -TEST_F(IOThreadTest, EnableTimeBasedLossDetectionFromFieldTrialGroup) { - field_trial_group_ = "EnabledWithTimeBasedLossDetection"; - - ConfigureQuicGlobals(); - net::HttpNetworkSession::Params params; - InitializeNetworkSessionParams(¶ms); - EXPECT_TRUE(params.enable_quic_time_based_loss_detection); -} - -TEST_F(IOThreadTest, EnableTimeBasedLossDetectionFromFieldTrialParams) { - field_trial_group_ = "Enabled"; - field_trial_params_["enable_time_based_loss_detection"] = "true"; - - ConfigureQuicGlobals(); - net::HttpNetworkSession::Params params; - InitializeNetworkSessionParams(¶ms); - EXPECT_TRUE(params.enable_quic_time_based_loss_detection); -} - TEST_F(IOThreadTest, PacketLengthFromCommandLine) { command_line_.AppendSwitch("enable-quic"); command_line_.AppendSwitchASCII("quic-max-packet-length", "1350"); -- cgit v1.1