From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: deepak1556 Date: Thu, 13 Oct 2022 20:30:12 +0900 Subject: Preconnect manager * Patch disables the profile related changes added in https://chromium-review.googlesource.com/c/chromium/src/+/3928470. * Also avoids including chrome/browser/predictors/resource_prefetch_predictor.h in favor of defining PreconnectRequest in this file since we don't build the header. diff --git a/chrome/browser/predictors/preconnect_manager.cc b/chrome/browser/predictors/preconnect_manager.cc index 02bdfd1f176d4ce44984387226b6fc2e6551f15e..1fabbbdd5359073692724ff722e205bbbb08e8be 100644 --- a/chrome/browser/predictors/preconnect_manager.cc +++ b/chrome/browser/predictors/preconnect_manager.cc @@ -13,9 +13,11 @@ #include "base/not_fatal_until.h" #include "base/trace_event/trace_event.h" #include "chrome/browser/predictors/predictors_features.h" +#if 0 #include "chrome/browser/predictors/resource_prefetch_predictor.h" #include "chrome/browser/preloading/preloading_prefs.h" #include "chrome/browser/profiles/profile.h" +#endif #include "content/public/browser/browser_context.h" #include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_thread.h" @@ -26,6 +28,20 @@ namespace predictors { const bool kAllowCredentialsOnPreconnectByDefault = true; +// NOTE(nornagon): this is copied from +// //chrome/browser/predictors/resource_prefetch_predictor.cc we don't need +// anything in that file other than this constructor. +PreconnectRequest::PreconnectRequest( + const url::Origin& origin, + int num_sockets, + const net::NetworkAnonymizationKey& network_anonymization_key) + : origin(origin), + num_sockets(num_sockets), + network_anonymization_key(network_anonymization_key) { + DCHECK_GE(num_sockets, 0); + DCHECK(!network_anonymization_key.IsEmpty()); +} + PreconnectedRequestStats::PreconnectedRequestStats(const url::Origin& origin, bool was_preconnected) : origin(origin), was_preconnected(was_preconnected) {} @@ -86,12 +102,15 @@ PreconnectManager::PreconnectManager(base::WeakPtr delegate, PreconnectManager::~PreconnectManager() = default; bool PreconnectManager::IsEnabled() { +#if 0 Profile* profile = Profile::FromBrowserContext(browser_context_); if (!profile) { return false; } return prefetch::IsSomePreloadingEnabled(*profile->GetPrefs()) == content::PreloadingEligibility::kEligible; +#endif + return true; } void PreconnectManager::Start(const GURL& url, diff --git a/chrome/browser/predictors/preconnect_manager.h b/chrome/browser/predictors/preconnect_manager.h index 8376663d6ce03f006cff3e1d954a6ae5b9f773ec..b7c01d2dc7b30148b77708f4b6ebe02c357e93c0 100644 --- a/chrome/browser/predictors/preconnect_manager.h +++ b/chrome/browser/predictors/preconnect_manager.h @@ -17,7 +17,9 @@ #include "base/time/time.h" #include "chrome/browser/predictors/proxy_lookup_client_impl.h" #include "chrome/browser/predictors/resolve_host_client_impl.h" +#if 0 #include "chrome/browser/predictors/resource_prefetch_predictor.h" +#endif #include "net/base/network_anonymization_key.h" #include "url/gurl.h" @@ -33,7 +35,28 @@ class NetworkContext; namespace predictors { -struct PreconnectRequest; +// Stores all values needed to trigger a preconnect/preresolve job to a single +// origin. +struct PreconnectRequest { + // |network_anonymization_key| specifies the key that network requests for the + // preconnected URL are expected to use. If a request is issued with a + // different key, it may not use the preconnected socket. It has no effect + // when |num_sockets| == 0. + PreconnectRequest( + const url::Origin& origin, + int num_sockets, + const net::NetworkAnonymizationKey& network_anonymization_key); + PreconnectRequest(const PreconnectRequest&) = default; + PreconnectRequest(PreconnectRequest&&) = default; + PreconnectRequest& operator=(const PreconnectRequest&) = default; + PreconnectRequest& operator=(PreconnectRequest&&) = default; + + url::Origin origin; + // A zero-value means that we need to preresolve a host only. + int num_sockets = 0; + bool allow_credentials = true; + net::NetworkAnonymizationKey network_anonymization_key; +}; struct PreconnectedRequestStats { PreconnectedRequestStats(const url::Origin& origin, bool was_preconnected);