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

Unified Diff: net/http/http_stream_factory_impl.h

Issue 2648593002: Allow a preconnecting job to a HTTP2 proxy server based on privacy mode (Closed)
Patch Set: ps Created 3 years, 11 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
« no previous file with comments | « no previous file | net/http/http_stream_factory_impl.cc » ('j') | net/http/http_stream_factory_impl_unittest.cc » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/http/http_stream_factory_impl.h
diff --git a/net/http/http_stream_factory_impl.h b/net/http/http_stream_factory_impl.h
index b61b8abee89f66676b743d0566e1efcf301dac80..6c214368a3c54edb708dffe57df608d8eb58249d 100644
--- a/net/http/http_stream_factory_impl.h
+++ b/net/http/http_stream_factory_impl.h
@@ -16,6 +16,7 @@
#include "base/memory/ref_counted.h"
#include "net/base/host_port_pair.h"
#include "net/base/net_export.h"
+#include "net/base/privacy_mode.h"
#include "net/base/request_priority.h"
#include "net/http/http_stream_factory.h"
#include "net/proxy/proxy_server.h"
@@ -85,6 +86,20 @@ class NET_EXPORT_PRIVATE HttpStreamFactoryImpl : public HttpStreamFactory {
typedef std::map<SpdySessionKey, RequestSet> SpdySessionRequestMap;
typedef std::set<std::unique_ptr<JobController>> JobControllerSet;
+ // |PreconnectingProxyServer| holds information of a connection to a single
+ // proxy server.
+ struct PreconnectingProxyServer {
+ PreconnectingProxyServer(ProxyServer proxy_server,
+ PrivacyMode privacy_mode);
+
+ // Needed to be an element of std::set.
+ bool operator<(const PreconnectingProxyServer& other) const;
+ bool operator==(const PreconnectingProxyServer& other) const;
+
+ const ProxyServer proxy_server;
+ const PrivacyMode privacy_mode;
+ };
+
// Values must not be changed or reused. Keep in sync with identically named
// enum in histograms.xml.
enum AlternativeServiceType {
@@ -131,13 +146,15 @@ class NET_EXPORT_PRIVATE HttpStreamFactoryImpl : public HttpStreamFactory {
void OnJobControllerComplete(JobController* controller);
// Returns true if a connection to the proxy server contained in |proxy_info|
- // can be skipped by a job controlled by |controller|.
+ // that has privacy mode |privacy_mode| can be skipped by a job controlled by
+ // |controller|.
bool OnInitConnection(const JobController& controller,
- const ProxyInfo& proxy_info);
+ const ProxyInfo& proxy_info,
+ PrivacyMode privacy_mode);
// Notifies |this| that a stream to the proxy server contained in |proxy_info|
- // is ready.
- void OnStreamReady(const ProxyInfo& proxy_info);
+ // with privacy mode |privacy_mode| is ready.
+ void OnStreamReady(const ProxyInfo& proxy_info, PrivacyMode privacy_mode);
// Returns true if |proxy_info| contains a proxy server that supports request
// priorities.
@@ -162,7 +179,7 @@ class NET_EXPORT_PRIVATE HttpStreamFactoryImpl : public HttpStreamFactory {
// Set of proxy servers that support request priorities to which subsequent
// preconnects should be skipped.
- std::set<ProxyServer> preconnecting_proxy_servers_;
+ std::set<PreconnectingProxyServer> preconnecting_proxy_servers_;
SpdySessionRequestMap spdy_session_request_map_;
« no previous file with comments | « no previous file | net/http/http_stream_factory_impl.cc » ('j') | net/http/http_stream_factory_impl_unittest.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698