| Index: chrome/browser/io_thread.cc
|
| diff --git a/chrome/browser/io_thread.cc b/chrome/browser/io_thread.cc
|
| index ae4e1a6e0faf7254c64936999ac1d4ee6533d8fd..9abb58ce4e8209d0b7cf54826aef402dfca5b6f1 100644
|
| --- a/chrome/browser/io_thread.cc
|
| +++ b/chrome/browser/io_thread.cc
|
| @@ -1082,6 +1082,8 @@ void IOThread::InitializeNetworkSessionParamsFromGlobals(
|
| params->quic_connection_options = globals.quic_connection_options;
|
| globals.quic_close_sessions_on_ip_change.CopyToIfSet(
|
| ¶ms->quic_close_sessions_on_ip_change);
|
| + globals.quic_migrate_sessions_on_net_change.CopyToIfSet(
|
| + ¶ms->quic_migrate_sessions_on_net_change);
|
|
|
| globals.origin_to_force_quic_on.CopyToIfSet(
|
| ¶ms->origin_to_force_quic_on);
|
| @@ -1219,6 +1221,8 @@ void IOThread::ConfigureQuicGlobals(
|
| GetQuicConnectionOptions(command_line, quic_trial_params);
|
| globals->quic_close_sessions_on_ip_change.set(
|
| ShouldQuicCloseSessionsOnIpChange(quic_trial_params));
|
| + globals->quic_migrate_sessions_on_net_change.set(
|
| + ShouldQuicMigrateSessionsOnNetChange(quic_trial_params));
|
| }
|
|
|
| size_t max_packet_length = GetQuicMaxPacketLength(command_line,
|
| @@ -1471,6 +1475,19 @@ bool IOThread::ShouldQuicCloseSessionsOnIpChange(
|
| "true");
|
| }
|
|
|
| +bool IOThread::ShouldQuicMigrateSessionsOnNetChange(
|
| + const VariationParameters& quic_trial_params) {
|
| +#if defined(OS_ANDROID)
|
| + && base::android::BuildInfo::GetInstance()->sdk_int() >=
|
| + base::android::SDK_VERSION_LOLLIPOP
|
| + // Migration only implemented for Android versions >= L.
|
| + return base::LowerCaseEqualsASCII(
|
| + GetVariationParam(quic_trial_params, "migrate_sessions_on_net_change"),
|
| + "true");
|
| +#endif
|
| + return false;
|
| +}
|
| +
|
| size_t IOThread::GetQuicMaxPacketLength(
|
| const base::CommandLine& command_line,
|
| const VariationParameters& quic_trial_params) {
|
|
|