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

Side by Side Diff: net/quic/quic_chromium_client_session.h

Issue 1987913002: QUIC - add new UMA histograms to help understand HPACK head of line blocking. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase after upstream submit Created 4 years, 7 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
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 // A client specific QuicSession subclass. This class owns the underlying 5 // A client specific QuicSession subclass. This class owns the underlying
6 // QuicConnection and QuicConnectionHelper objects. The connection stores 6 // QuicConnection and QuicConnectionHelper objects. The connection stores
7 // a non-owning pointer to the helper so this session needs to ensure that 7 // a non-owning pointer to the helper so this session needs to ensure that
8 // the helper outlives the connection. 8 // the helper outlives the connection.
9 9
10 #ifndef NET_QUIC_QUIC_CHROMIUM_CLIENT_SESSION_H_ 10 #ifndef NET_QUIC_QUIC_CHROMIUM_CLIENT_SESSION_H_
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 const QuicConfig& config, 129 const QuicConfig& config,
130 QuicCryptoClientConfig* crypto_config, 130 QuicCryptoClientConfig* crypto_config,
131 const char* const connection_description, 131 const char* const connection_description,
132 base::TimeTicks dns_resolution_end_time, 132 base::TimeTicks dns_resolution_end_time,
133 QuicClientPushPromiseIndex* push_promise_index, 133 QuicClientPushPromiseIndex* push_promise_index,
134 base::TaskRunner* task_runner, 134 base::TaskRunner* task_runner,
135 std::unique_ptr<SocketPerformanceWatcher> socket_performance_watcher, 135 std::unique_ptr<SocketPerformanceWatcher> socket_performance_watcher,
136 NetLog* net_log); 136 NetLog* net_log);
137 ~QuicChromiumClientSession() override; 137 ~QuicChromiumClientSession() override;
138 138
139 void Initialize() override;
140
139 void AddObserver(Observer* observer); 141 void AddObserver(Observer* observer);
140 void RemoveObserver(Observer* observer); 142 void RemoveObserver(Observer* observer);
141 143
142 // Attempts to create a new stream. If the stream can be 144 // Attempts to create a new stream. If the stream can be
143 // created immediately, returns OK. If the open stream limit 145 // created immediately, returns OK. If the open stream limit
144 // has been reached, returns ERR_IO_PENDING, and |request| 146 // has been reached, returns ERR_IO_PENDING, and |request|
145 // will be added to the stream requets queue and will 147 // will be added to the stream requets queue and will
146 // be completed asynchronously. 148 // be completed asynchronously.
147 // TODO(rch): remove |stream| from this and use setter on |request| 149 // TODO(rch): remove |stream| from this and use setter on |request|
148 // and fix in spdy too. 150 // and fix in spdy too.
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
270 272
271 protected: 273 protected:
272 // QuicSession methods: 274 // QuicSession methods:
273 bool ShouldCreateIncomingDynamicStream(QuicStreamId id) override; 275 bool ShouldCreateIncomingDynamicStream(QuicStreamId id) override;
274 bool ShouldCreateOutgoingDynamicStream() override; 276 bool ShouldCreateOutgoingDynamicStream() override;
275 277
276 QuicChromiumClientStream* CreateIncomingDynamicStream( 278 QuicChromiumClientStream* CreateIncomingDynamicStream(
277 QuicStreamId id) override; 279 QuicStreamId id) override;
278 280
279 private: 281 private:
282 class HpackEncoderDebugVisitor : public QuicHeadersStream::HpackDebugVisitor {
283 void OnUseEntry(const QuicTime::Delta elapsed) override;
284 };
285
286 class HpackDecoderDebugVisitor : public QuicHeadersStream::HpackDebugVisitor {
287 void OnUseEntry(const QuicTime::Delta elapsed) override;
288 };
Ryan Hamilton 2016/05/20 21:27:18 Looks like these can be moved to the .cc file.
Buck 2016/05/20 21:41:31 Done.
289
280 friend class test::QuicChromiumClientSessionPeer; 290 friend class test::QuicChromiumClientSessionPeer;
281 291
282 typedef std::set<Observer*> ObserverSet; 292 typedef std::set<Observer*> ObserverSet;
283 typedef std::list<StreamRequest*> StreamRequestQueue; 293 typedef std::list<StreamRequest*> StreamRequestQueue;
284 294
285 QuicChromiumClientStream* CreateOutgoingReliableStreamImpl(); 295 QuicChromiumClientStream* CreateOutgoingReliableStreamImpl();
286 QuicChromiumClientStream* CreateIncomingReliableStreamImpl(QuicStreamId id); 296 QuicChromiumClientStream* CreateIncomingReliableStreamImpl(QuicStreamId id);
287 // A completion callback invoked when a read completes. 297 // A completion callback invoked when a read completes.
288 void OnReadComplete(int result); 298 void OnReadComplete(int result);
289 299
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
349 int streams_pushed_count_; 359 int streams_pushed_count_;
350 int streams_pushed_and_claimed_count_; 360 int streams_pushed_and_claimed_count_;
351 base::WeakPtrFactory<QuicChromiumClientSession> weak_factory_; 361 base::WeakPtrFactory<QuicChromiumClientSession> weak_factory_;
352 362
353 DISALLOW_COPY_AND_ASSIGN(QuicChromiumClientSession); 363 DISALLOW_COPY_AND_ASSIGN(QuicChromiumClientSession);
354 }; 364 };
355 365
356 } // namespace net 366 } // namespace net
357 367
358 #endif // NET_QUIC_QUIC_CHROMIUM_CLIENT_SESSION_H_ 368 #endif // NET_QUIC_QUIC_CHROMIUM_CLIENT_SESSION_H_
OLDNEW
« no previous file with comments | « no previous file | net/quic/quic_chromium_client_session.cc » ('j') | net/quic/quic_chromium_client_session.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698