Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(450)

Side by Side Diff: net/quic/chromium/quic_stream_factory.cc

Issue 2325733004: Makes QuicChromiumPacketWriter use the delegate for interacting with the connection. (Closed)
Patch Set: Nits fixed. Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/quic/chromium/quic_chromium_packet_writer.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/quic/chromium/quic_stream_factory.h" 5 #include "net/quic/chromium/quic_stream_factory.h"
6 6
7 #include <openssl/aead.h> 7 #include <openssl/aead.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <tuple> 10 #include <tuple>
(...skipping 1619 matching lines...) Expand 10 before | Expand all | Expand 10 after
1630 session->CloseSessionOnError(ERR_NETWORK_CHANGED, QUIC_INTERNAL_ERROR); 1630 session->CloseSessionOnError(ERR_NETWORK_CHANGED, QUIC_INTERNAL_ERROR);
1631 } 1631 }
1632 return; 1632 return;
1633 } 1633 }
1634 std::unique_ptr<QuicChromiumPacketReader> new_reader( 1634 std::unique_ptr<QuicChromiumPacketReader> new_reader(
1635 new QuicChromiumPacketReader(socket.get(), clock_.get(), session, 1635 new QuicChromiumPacketReader(socket.get(), clock_.get(), session,
1636 yield_after_packets_, yield_after_duration_, 1636 yield_after_packets_, yield_after_duration_,
1637 session->net_log())); 1637 session->net_log()));
1638 std::unique_ptr<QuicChromiumPacketWriter> new_writer( 1638 std::unique_ptr<QuicChromiumPacketWriter> new_writer(
1639 new QuicChromiumPacketWriter(socket.get())); 1639 new QuicChromiumPacketWriter(socket.get()));
1640 new_writer->Initialize(session, session->connection()); 1640 new_writer->set_delegate(session);
1641 1641
1642 if (!session->MigrateToSocket(std::move(socket), std::move(new_reader), 1642 if (!session->MigrateToSocket(std::move(socket), std::move(new_reader),
1643 std::move(new_writer), packet)) { 1643 std::move(new_writer), packet)) {
1644 // TODO(jokulik): It's not clear how we could end up on this code 1644 // TODO(jokulik): It's not clear how we could end up on this code
1645 // path. We would theoretically hit this failure if we've 1645 // path. We would theoretically hit this failure if we've
1646 // performed too many migrations on this session. However, the 1646 // performed too many migrations on this session. However, the
1647 // session will be marked as going away after a previous 1647 // session will be marked as going away after a previous
1648 // migration, making subsequent migration impossible. 1648 // migration, making subsequent migration impossible.
1649 HistogramAndLogMigrationFailure( 1649 HistogramAndLogMigrationFailure(
1650 bound_net_log, MIGRATION_STATUS_TOO_MANY_CHANGES, 1650 bound_net_log, MIGRATION_STATUS_TOO_MANY_CHANGES,
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
1853 *session = new QuicChromiumClientSession( 1853 *session = new QuicChromiumClientSession(
1854 connection, std::move(socket), this, quic_crypto_client_stream_factory_, 1854 connection, std::move(socket), this, quic_crypto_client_stream_factory_,
1855 clock_.get(), transport_security_state_, std::move(server_info), 1855 clock_.get(), transport_security_state_, std::move(server_info),
1856 server_id, yield_after_packets_, yield_after_duration_, cert_verify_flags, 1856 server_id, yield_after_packets_, yield_after_duration_, cert_verify_flags,
1857 config, &crypto_config_, network_connection_.GetDescription(), 1857 config, &crypto_config_, network_connection_.GetDescription(),
1858 dns_resolution_end_time, &push_promise_index_, 1858 dns_resolution_end_time, &push_promise_index_,
1859 base::ThreadTaskRunnerHandle::Get().get(), 1859 base::ThreadTaskRunnerHandle::Get().get(),
1860 std::move(socket_performance_watcher), net_log.net_log()); 1860 std::move(socket_performance_watcher), net_log.net_log());
1861 1861
1862 all_sessions_[*session] = key; // owning pointer 1862 all_sessions_[*session] = key; // owning pointer
1863 writer->Initialize(*session, connection); 1863 writer->set_delegate(*session);
1864 1864
1865 (*session)->Initialize(); 1865 (*session)->Initialize();
1866 bool closed_during_initialize = !base::ContainsKey(all_sessions_, *session) || 1866 bool closed_during_initialize = !base::ContainsKey(all_sessions_, *session) ||
1867 !(*session)->connection()->connected(); 1867 !(*session)->connection()->connected();
1868 UMA_HISTOGRAM_BOOLEAN("Net.QuicSession.ClosedDuringInitializeSession", 1868 UMA_HISTOGRAM_BOOLEAN("Net.QuicSession.ClosedDuringInitializeSession",
1869 closed_during_initialize); 1869 closed_during_initialize);
1870 if (closed_during_initialize) { 1870 if (closed_during_initialize) {
1871 DLOG(DFATAL) << "Session closed during initialize"; 1871 DLOG(DFATAL) << "Session closed during initialize";
1872 *session = nullptr; 1872 *session = nullptr;
1873 return ERR_CONNECTION_CLOSED; 1873 return ERR_CONNECTION_CLOSED;
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
2053 // Since the session was active, there's no longer an 2053 // Since the session was active, there's no longer an
2054 // HttpStreamFactoryImpl::Job running which can mark it broken, unless the TCP 2054 // HttpStreamFactoryImpl::Job running which can mark it broken, unless the TCP
2055 // job also fails. So to avoid not using QUIC when we otherwise could, we mark 2055 // job also fails. So to avoid not using QUIC when we otherwise could, we mark
2056 // it as recently broken, which means that 0-RTT will be disabled but we'll 2056 // it as recently broken, which means that 0-RTT will be disabled but we'll
2057 // still race. 2057 // still race.
2058 http_server_properties_->MarkAlternativeServiceRecentlyBroken( 2058 http_server_properties_->MarkAlternativeServiceRecentlyBroken(
2059 alternative_service); 2059 alternative_service);
2060 } 2060 }
2061 2061
2062 } // namespace net 2062 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/chromium/quic_chromium_packet_writer.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698