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

Unified Diff: net/http/http_stream_factory_impl_job.h

Issue 2814633003: Extract Proxy Resolution out of HttpStreamFactoryImpl::Job (Closed)
Patch Set: fix remaining tests Created 3 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: net/http/http_stream_factory_impl_job.h
diff --git a/net/http/http_stream_factory_impl_job.h b/net/http/http_stream_factory_impl_job.h
index 809574ed30b4756c29679858b5e45608f4e30b18..d2dcf2a966a3a8d390ddbbde4433fa952d9ec190 100644
--- a/net/http/http_stream_factory_impl_job.h
+++ b/net/http/http_stream_factory_impl_job.h
@@ -102,16 +102,6 @@ class HttpStreamFactoryImpl::Job {
// contained in |proxy_info| can be skipped.
virtual bool OnInitConnection(const ProxyInfo& proxy_info) = 0;
- // Invoked when |job| has completed proxy resolution. The delegate may
- // create an alternative proxy server job to fetch the request.
- virtual void OnResolveProxyComplete(
- Job* job,
- const HttpRequestInfo& request_info,
- RequestPriority priority,
- const SSLConfig& server_ssl_config,
- const SSLConfig& proxy_ssl_config,
- HttpStreamRequest::StreamType stream_type) = 0;
-
// Invoked to notify the Request and Factory of the readiness of new
// SPDY session.
virtual void OnNewSpdySessionReady(
@@ -163,6 +153,7 @@ class HttpStreamFactoryImpl::Job {
HttpNetworkSession* session,
const HttpRequestInfo& request_info,
RequestPriority priority,
+ ProxyInfo proxy_info,
const SSLConfig& server_ssl_config,
const SSLConfig& proxy_ssl_config,
HostPortPair destination,
@@ -183,6 +174,7 @@ class HttpStreamFactoryImpl::Job {
HttpNetworkSession* session,
const HttpRequestInfo& request_info,
RequestPriority priority,
+ ProxyInfo proxy_info,
const SSLConfig& server_ssl_config,
const SSLConfig& proxy_ssl_config,
HostPortPair destination,
@@ -251,6 +243,8 @@ class HttpStreamFactoryImpl::Job {
return using_existing_quic_session_;
}
+ bool reconsider_proxy() const { return reconsider_proxy_; }
+
// TODO(xunjieli): Added to investigate crbug.com/711721. Remove when no
// longer needed.
void LogHistograms() const;
@@ -260,9 +254,6 @@ class HttpStreamFactoryImpl::Job {
enum State {
STATE_START,
- STATE_RESOLVE_PROXY,
- STATE_RESOLVE_PROXY_COMPLETE,
-
// The main and alternative jobs are started in parallel. The main job
// waits after it finishes proxy resolution. The alternative job never
// waits.
@@ -321,8 +312,6 @@ class HttpStreamFactoryImpl::Job {
// ERR_IO_PENDING, then the result from OnIOComplete will be passed to the
// next state method as the result arg.
int DoStart();
- int DoResolveProxy();
- int DoResolveProxyComplete(int result);
int DoWait();
int DoWaitComplete(int result);
int DoInitConnection();
@@ -405,7 +394,7 @@ class HttpStreamFactoryImpl::Job {
const HttpRequestInfo request_info_;
RequestPriority priority_;
- ProxyInfo proxy_info_;
+ const ProxyInfo proxy_info_;
SSLConfig server_ssl_config_;
SSLConfig proxy_ssl_config_;
const NetLogWithSource net_log_;
@@ -418,7 +407,6 @@ class HttpStreamFactoryImpl::Job {
State state_;
State next_state_;
- ProxyService::PacRequest* pac_request_;
SSLInfo ssl_info_;
// The server we are trying to reach, could be that of the origin or of the
@@ -453,7 +441,12 @@ class HttpStreamFactoryImpl::Job {
// True if this network transaction is using QUIC instead of HTTP.
bool using_quic_;
- QuicStreamRequest quic_request_;
+
+ // True if this job might succeed with a different proxy config.
+ bool reconsider_proxy_;
+
+ // TODO(xunjieli): Create only if Quic is to be used.
+ std::unique_ptr<QuicStreamRequest> quic_request_;
// True if this job used an existing QUIC session.
bool using_existing_quic_session_;
@@ -507,6 +500,7 @@ class HttpStreamFactoryImpl::JobFactory {
HttpNetworkSession* session,
const HttpRequestInfo& request_info,
RequestPriority priority,
+ ProxyInfo proxy_info,
const SSLConfig& server_ssl_config,
const SSLConfig& proxy_ssl_config,
HostPortPair destination,
@@ -522,6 +516,7 @@ class HttpStreamFactoryImpl::JobFactory {
HttpNetworkSession* session,
const HttpRequestInfo& request_info,
RequestPriority priority,
+ ProxyInfo proxy_info,
const SSLConfig& server_ssl_config,
const SSLConfig& proxy_ssl_config,
HostPortPair destination,
@@ -537,6 +532,7 @@ class HttpStreamFactoryImpl::JobFactory {
HttpNetworkSession* session,
const HttpRequestInfo& request_info,
RequestPriority priority,
+ ProxyInfo proxy_info,
const SSLConfig& server_ssl_config,
const SSLConfig& proxy_ssl_config,
HostPortPair destination,

Powered by Google App Engine
This is Rietveld 408576698