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

Unified Diff: net/http/http_stream_factory_impl_job.h

Issue 2814633003: Extract Proxy Resolution out of HttpStreamFactoryImpl::Job (Closed)
Patch Set: unstage unrelated changes 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..6ac1a75df9ed0204cc9433fc40e49ad40c40d129 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,
tbansal1 2017/05/09 20:38:48 pass as const ref? here and in the ctor below.
xunjieli 2017/05/10 00:26:24 Done.
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,6 +441,10 @@ class HttpStreamFactoryImpl::Job {
// True if this network transaction is using QUIC instead of HTTP.
bool using_quic_;
+
+ // True if this job might succeed with a different proxy config.
+ bool reconsider_proxy_;
Ryan Hamilton 2017/05/09 19:22:06 nit: Consider "should_reconsider_proxy_"
xunjieli 2017/05/10 00:26:24 Done.
+
QuicStreamRequest quic_request_;
// True if this job used an existing QUIC session.
@@ -498,51 +490,53 @@ class HttpStreamFactoryImpl::Job {
// Factory for creating Jobs.
class HttpStreamFactoryImpl::JobFactory {
public:
- virtual ~JobFactory() {}
+ JobFactory();
+
+ virtual ~JobFactory();
- // Creates an alternative service Job.
virtual HttpStreamFactoryImpl::Job* CreateJob(
Ryan Hamilton 2017/05/09 19:22:06 nit: There are quite a few arguments in each of th
xunjieli 2017/05/10 00:26:24 Done.
HttpStreamFactoryImpl::Job::Delegate* delegate,
HttpStreamFactoryImpl::JobType job_type,
HttpNetworkSession* session,
const HttpRequestInfo& request_info,
RequestPriority priority,
+ ProxyInfo proxy_info,
tbansal1 2017/05/09 20:38:48 nit: pass as const ref? here and below.
xunjieli 2017/05/10 00:26:24 Done.
const SSLConfig& server_ssl_config,
const SSLConfig& proxy_ssl_config,
HostPortPair destination,
GURL origin_url,
- AlternativeService alternative_service,
bool enable_ip_based_pooling,
- NetLog* net_log) = 0;
+ NetLog* net_log);
- // Creates an alternative proxy server Job.
virtual HttpStreamFactoryImpl::Job* CreateJob(
HttpStreamFactoryImpl::Job::Delegate* delegate,
HttpStreamFactoryImpl::JobType job_type,
HttpNetworkSession* session,
const HttpRequestInfo& request_info,
RequestPriority priority,
+ ProxyInfo proxy_info,
const SSLConfig& server_ssl_config,
const SSLConfig& proxy_ssl_config,
HostPortPair destination,
GURL origin_url,
- const ProxyServer& alternative_proxy_server,
+ AlternativeService alternative_service,
bool enable_ip_based_pooling,
- NetLog* net_log) = 0;
+ NetLog* net_log);
- // Creates a non-alternative Job.
virtual HttpStreamFactoryImpl::Job* CreateJob(
HttpStreamFactoryImpl::Job::Delegate* delegate,
HttpStreamFactoryImpl::JobType job_type,
HttpNetworkSession* session,
const HttpRequestInfo& request_info,
RequestPriority priority,
+ ProxyInfo proxy_info,
const SSLConfig& server_ssl_config,
const SSLConfig& proxy_ssl_config,
HostPortPair destination,
GURL origin_url,
+ const ProxyServer& alternative_proxy_server,
bool enable_ip_based_pooling,
- NetLog* net_log) = 0;
+ NetLog* net_log);
};
} // namespace net

Powered by Google App Engine
This is Rietveld 408576698