Preconnect to litepages on Chrome startup
This CL will be merged to 76 and replaced with a more robust prober in
77.
(cherry picked from commit c530348dc61d1e396941e930a02942d48bdb36c5)
Bug: 973916
Change-Id: I0661d99769f018c5b2fd93e22e52f6fc675e4fad
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1658709
Reviewed-by: Tarun Bansal <tbansal@chromium.org>
Commit-Queue: Robert Ogden <robertogden@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#668917}
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1658938
Reviewed-by: Robert Ogden <robertogden@chromium.org>
Cr-Commit-Position: refs/branch-heads/3809@{#305}
Cr-Branched-From: d82dec1a818f378c464ba307ddd9c92133eac355-refs/heads/master@{#665002}
diff --git a/chrome/browser/previews/previews_lite_page_decider.cc b/chrome/browser/previews/previews_lite_page_decider.cc
index 58012c5..2154633 100644
--- a/chrome/browser/previews/previews_lite_page_decider.cc
+++ b/chrome/browser/previews/previews_lite_page_decider.cc
@@ -15,6 +15,8 @@
#include "build/build_config.h"
#include "chrome/browser/data_reduction_proxy/data_reduction_proxy_chrome_settings.h"
#include "chrome/browser/data_reduction_proxy/data_reduction_proxy_chrome_settings_factory.h"
+#include "chrome/browser/predictors/loading_predictor.h"
+#include "chrome/browser/predictors/loading_predictor_factory.h"
#include "chrome/browser/previews/previews_lite_page_infobar_delegate.h"
#include "chrome/browser/previews/previews_lite_page_navigation_throttle.h"
#include "chrome/browser/previews/previews_service.h"
@@ -82,6 +84,19 @@
DCHECK_GE(kMaxBlacklistEntries, dict->DictSize());
}
+
+void PreconnectToLitePagesServer(content::BrowserContext* browser_context) {
+ predictors::LoadingPredictor* loading_predictor =
+ predictors::LoadingPredictorFactory::GetForProfile(
+ Profile::FromBrowserContext(browser_context));
+
+ if (!loading_predictor || !loading_predictor->preconnect_manager())
+ return;
+
+ loading_predictor->preconnect_manager()->StartPreconnectUrl(
+ previews::params::GetLitePagePreviewsDomainURL(), true);
+}
+
} // namespace
// This WebContentsObserver watches the rest of the current navigation shows a
@@ -152,6 +167,11 @@
DCHECK(!browser_context->IsOffTheRecord());
+ // TODO(crbug.com/971918): Remove once a more robust prober is setup.
+ if (drp_settings->IsDataReductionProxyEnabled()) {
+ PreconnectToLitePagesServer(browser_context);
+ }
+
pref_service_ = Profile::FromBrowserContext(browser_context)->GetPrefs();
host_bypass_blacklist_ =
pref_service_->GetDictionary(kHostBlacklist)->CreateDeepCopy();