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

Side by Side Diff: net/http/http_stream_factory_impl_job.h

Issue 2332193003: JobController3: Move MarkAlternativeServiceBroken to job controller (Closed)
Patch Set: some nits 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
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 #ifndef NET_HTTP_HTTP_STREAM_FACTORY_IMPL_JOB_H_ 5 #ifndef NET_HTTP_HTTP_STREAM_FACTORY_IMPL_JOB_H_
6 #define NET_HTTP_HTTP_STREAM_FACTORY_IMPL_JOB_H_ 6 #define NET_HTTP_HTTP_STREAM_FACTORY_IMPL_JOB_H_
7 7
8 #include <memory> 8 #include <memory>
9 9
10 #include "base/macros.h" 10 #include "base/macros.h"
(...skipping 30 matching lines...) Expand all
41 41
42 // An HttpStreamRequestImpl exists for each stream which is in progress of being 42 // An HttpStreamRequestImpl exists for each stream which is in progress of being
43 // created for the StreamFactory. 43 // created for the StreamFactory.
44 class HttpStreamFactoryImpl::Job { 44 class HttpStreamFactoryImpl::Job {
45 public: 45 public:
46 // Delegate to report Job's status to Request and HttpStreamFactory. 46 // Delegate to report Job's status to Request and HttpStreamFactory.
47 class NET_EXPORT_PRIVATE Delegate { 47 class NET_EXPORT_PRIVATE Delegate {
48 public: 48 public:
49 virtual ~Delegate() {} 49 virtual ~Delegate() {}
50 50
51 // Invoked when |job| has alternative service identified borken.
Ryan Hamilton 2016/09/13 04:17:04 s/borken/broken/ (and below)
Zhongyi Shi 2016/09/13 22:52:37 Done.
52 virtual void OnAlternativeServiceBroken(Job* job) = 0;
53
54 // Invoked when |job| has alternative proxy server identified borken.
55 virtual void OnAlternativeProxyServerBroken(Job* job) = 0;
56
51 // Invoked when |job| has an HttpStream ready. 57 // Invoked when |job| has an HttpStream ready.
52 virtual void OnStreamReady(Job* job, 58 virtual void OnStreamReady(Job* job,
53 const SSLConfig& used_ssl_config, 59 const SSLConfig& used_ssl_config,
54 const ProxyInfo& used_proxy_info) = 0; 60 const ProxyInfo& used_proxy_info) = 0;
55 61
56 // Invoked when |job| has a BidirectionalStream ready. 62 // Invoked when |job| has a BidirectionalStream ready.
57 virtual void OnBidirectionalStreamImplReady( 63 virtual void OnBidirectionalStreamImplReady(
58 Job* job, 64 Job* job,
59 const SSLConfig& used_ssl_config, 65 const SSLConfig& used_ssl_config,
60 const ProxyInfo& used_proxy_info) = 0; 66 const ProxyInfo& used_proxy_info) = 0;
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 234
229 bool is_waiting() const { return next_state_ == STATE_WAIT_COMPLETE; } 235 bool is_waiting() const { return next_state_ == STATE_WAIT_COMPLETE; }
230 const SSLConfig& server_ssl_config() const; 236 const SSLConfig& server_ssl_config() const;
231 const SSLConfig& proxy_ssl_config() const; 237 const SSLConfig& proxy_ssl_config() const;
232 const ProxyInfo& proxy_info() const; 238 const ProxyInfo& proxy_info() const;
233 239
234 // Called to indicate that this job succeeded, and some other jobs 240 // Called to indicate that this job succeeded, and some other jobs
235 // will be orphaned. 241 // will be orphaned.
236 void ReportJobSucceededForRequest(); 242 void ReportJobSucceededForRequest();
237 243
238 // Marks that the other |job| has completed. 244 JobType job_type() const { return job_type_; }
239 virtual void MarkOtherJobComplete(const Job& job);
240 245
241 JobType job_type() const { return job_type_; } 246 const AlternativeService alternative_service() {
tbansal1 2016/09/13 05:06:45 Can this method be a const method? Same below.
Zhongyi Shi 2016/09/13 22:52:37 Done.
247 return alternative_service_;
248 }
249 const ProxyServer alternative_proxy_server() {
250 return alternative_proxy_server_;
251 }
242 252
243 private: 253 private:
244 friend class HttpStreamFactoryImplJobPeer; 254 friend class HttpStreamFactoryImplJobPeer;
245 255
246 enum State { 256 enum State {
247 STATE_START, 257 STATE_START,
248 STATE_RESOLVE_PROXY, 258 STATE_RESOLVE_PROXY,
249 STATE_RESOLVE_PROXY_COMPLETE, 259 STATE_RESOLVE_PROXY_COMPLETE,
250 260
251 // Note that when Alternate-Protocol says we can connect to an alternate 261 // Note that when Alternate-Protocol says we can connect to an alternate
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
373 383
374 // Called to handle a client certificate request. 384 // Called to handle a client certificate request.
375 int HandleCertificateRequest(int error); 385 int HandleCertificateRequest(int error);
376 386
377 // Moves this stream request into SPDY mode. 387 // Moves this stream request into SPDY mode.
378 void SwitchToSpdyMode(); 388 void SwitchToSpdyMode();
379 389
380 // Should we force QUIC for this stream request. 390 // Should we force QUIC for this stream request.
381 bool ShouldForceQuic() const; 391 bool ShouldForceQuic() const;
382 392
383 void MaybeMarkAlternativeServiceBroken();
384
385 // May notify proxy delegate that the alternative proxy server is broken. The
386 // alternative proxy server is considered as broken if the alternative proxy
387 // server job failed, but the main job was successful.
388 void MaybeNotifyAlternativeProxyServerBroken() const;
389
390 ClientSocketPoolManager::SocketGroupType GetSocketGroup() const; 393 ClientSocketPoolManager::SocketGroupType GetSocketGroup() const;
391 394
392 void MaybeCopyConnectionAttemptsFromSocketOrHandle(); 395 void MaybeCopyConnectionAttemptsFromSocketOrHandle();
393 396
394 // Record histograms of latency until Connect() completes. 397 // Record histograms of latency until Connect() completes.
395 static void LogHttpConnectedMetrics(const ClientSocketHandle& handle); 398 static void LogHttpConnectedMetrics(const ClientSocketHandle& handle);
396 399
397 // Invoked by the transport socket pool after host resolution is complete 400 // Invoked by the transport socket pool after host resolution is complete
398 // to allow the connection to be aborted, if a matching SPDY session can 401 // to allow the connection to be aborted, if a matching SPDY session can
399 // be found. Will return ERR_SPDY_SESSION_ALREADY_EXISTS if such a 402 // be found. Will return ERR_SPDY_SESSION_ALREADY_EXISTS if such a
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
547 const SSLConfig& server_ssl_config, 550 const SSLConfig& server_ssl_config,
548 const SSLConfig& proxy_ssl_config, 551 const SSLConfig& proxy_ssl_config,
549 HostPortPair destination, 552 HostPortPair destination,
550 GURL origin_url, 553 GURL origin_url,
551 NetLog* net_log) = 0; 554 NetLog* net_log) = 0;
552 }; 555 };
553 556
554 } // namespace net 557 } // namespace net
555 558
556 #endif // NET_HTTP_HTTP_STREAM_FACTORY_IMPL_JOB_H_ 559 #endif // NET_HTTP_HTTP_STREAM_FACTORY_IMPL_JOB_H_
OLDNEW
« no previous file with comments | « no previous file | net/http/http_stream_factory_impl_job.cc » ('j') | net/http/http_stream_factory_impl_job.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698