Commit 96813a43 authored by Alexandr Ilin's avatar Alexandr Ilin Committed by Commit Bot

predictors: Move config check outside MaybeAdd* methods

In the current state we skip preconnect even if prefetch is disabled because the
check is inside MaybeAddPrefetch() method. We have prefetch data even if
prefetching is disabled because LoadingPredictor uses common LEARNING mode.

Bug: 699080
Change-Id: I48aef431bf0771e5c7e74b0b0dd164b77aab493c
Reviewed-on: https://chromium-review.googlesource.com/570421Reviewed-by: default avatarBenoit L <lizeb@chromium.org>
Commit-Queue: Alexandr Ilin <alexilin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#487431}
parent 4979aac4
...@@ -43,11 +43,16 @@ void LoadingPredictor::PrepareForPageLoad(const GURL& url, HintOrigin origin) { ...@@ -43,11 +43,16 @@ void LoadingPredictor::PrepareForPageLoad(const GURL& url, HintOrigin origin) {
if (active_hints_.find(url) != active_hints_.end()) if (active_hints_.find(url) != active_hints_.end())
return; return;
bool has_prefetch_prediction = false;
bool has_preconnect_prediction = false;
bool hint_activated = false; bool hint_activated = false;
{ {
ResourcePrefetchPredictor::Prediction prediction; ResourcePrefetchPredictor::Prediction prediction;
if (resource_prefetch_predictor_->GetPrefetchData(url, &prediction)) { has_prefetch_prediction =
resource_prefetch_predictor_->GetPrefetchData(url, &prediction);
if (has_prefetch_prediction &&
config_.IsPrefetchingEnabledForOrigin(profile_, origin)) {
MaybeAddPrefetch(url, prediction.subresource_urls, origin); MaybeAddPrefetch(url, prediction.subresource_urls, origin);
hint_activated = true; hint_activated = true;
} }
...@@ -55,15 +60,18 @@ void LoadingPredictor::PrepareForPageLoad(const GURL& url, HintOrigin origin) { ...@@ -55,15 +60,18 @@ void LoadingPredictor::PrepareForPageLoad(const GURL& url, HintOrigin origin) {
if (!hint_activated) { if (!hint_activated) {
PreconnectPrediction prediction; PreconnectPrediction prediction;
if (resource_prefetch_predictor_->PredictPreconnectOrigins(url, has_preconnect_prediction =
&prediction)) { resource_prefetch_predictor_->PredictPreconnectOrigins(url,
&prediction);
if (has_preconnect_prediction &&
config_.IsPreconnectEnabledForOrigin(profile_, origin)) {
MaybeAddPreconnect(url, prediction.preconnect_origins, MaybeAddPreconnect(url, prediction.preconnect_origins,
prediction.preresolve_hosts, origin); prediction.preresolve_hosts, origin);
hint_activated = true; hint_activated = true;
} }
} }
if (hint_activated) { if (has_prefetch_prediction || has_preconnect_prediction) {
// To report hint durations and deduplicate hints to the same url. // To report hint durations and deduplicate hints to the same url.
active_hints_.emplace(url, base::TimeTicks::Now()); active_hints_.emplace(url, base::TimeTicks::Now());
} }
...@@ -190,8 +198,6 @@ void LoadingPredictor::CleanupAbandonedHintsAndNavigations( ...@@ -190,8 +198,6 @@ void LoadingPredictor::CleanupAbandonedHintsAndNavigations(
void LoadingPredictor::MaybeAddPrefetch(const GURL& url, void LoadingPredictor::MaybeAddPrefetch(const GURL& url,
const std::vector<GURL>& urls, const std::vector<GURL>& urls,
HintOrigin origin) { HintOrigin origin) {
if (!config_.IsPrefetchingEnabledForOrigin(profile_, origin))
return;
std::string host = url.host(); std::string host = url.host();
if (prefetches_.find(host) != prefetches_.end()) if (prefetches_.find(host) != prefetches_.end())
return; return;
...@@ -268,8 +274,6 @@ void LoadingPredictor::MaybeAddPreconnect( ...@@ -268,8 +274,6 @@ void LoadingPredictor::MaybeAddPreconnect(
// In case Shutdown() has been already called. // In case Shutdown() has been already called.
if (!preconnect_manager_) if (!preconnect_manager_)
return; return;
if (!config_.IsPreconnectEnabledForOrigin(profile_, origin))
return;
content::BrowserThread::PostTask( content::BrowserThread::PostTask(
content::BrowserThread::IO, FROM_HERE, content::BrowserThread::IO, FROM_HERE,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment