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

Unified Diff: chrome/browser/prerender/prerender_manager.cc

Issue 1767243002: Update prerender policy for custom tabs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Renaming nits Created 4 years, 9 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: chrome/browser/prerender/prerender_manager.cc
diff --git a/chrome/browser/prerender/prerender_manager.cc b/chrome/browser/prerender/prerender_manager.cc
index 4bb07b23169a97432e1a9cb06d1239f8751ae0d1..d36e43a46937b3cc4c9c2c461a079abf1e512227 100644
--- a/chrome/browser/prerender/prerender_manager.cc
+++ b/chrome/browser/prerender/prerender_manager.cc
@@ -297,9 +297,12 @@ PrerenderHandle* PrerenderManager::AddPrerenderFromExternalRequest(
const GURL& url,
const content::Referrer& referrer,
SessionStorageNamespace* session_storage_namespace,
- const gfx::Size& size) {
- return AddPrerender(ORIGIN_EXTERNAL_REQUEST, url, referrer, size,
- session_storage_namespace);
+ const gfx::Size& size,
+ bool prerender_on_mobile) {
mmenke 2016/03/14 20:38:01 This is weird, for a couple reasons: * This metho
Yusuf 2016/03/14 23:08:19 Done. Added AddPrerenderOnCellularFromExternalRequ
+ Origin origin = prerender_on_mobile
+ ? ORIGIN_EXTERNAL_REQUEST_FORCED_CUSTOMTABS
mmenke 2016/03/14 20:38:01 Mapping "prerender_on_mobile == true" to "ORIGIN_E
Yusuf 2016/03/14 23:08:20 Done.
+ : ORIGIN_EXTERNAL_REQUEST;
+ return AddPrerender(origin, url, referrer, size, session_storage_namespace);
}
PrerenderHandle* PrerenderManager::AddPrerenderForInstant(
@@ -934,7 +937,8 @@ PrerenderHandle* PrerenderManager::AddPrerender(
// histogram tracking.
histograms_->RecordPrerender(origin, url_arg);
- NetworkPredictionStatus prerendering_status = GetPredictionStatus();
+ NetworkPredictionStatus prerendering_status =
+ GetPredictionStatusForOrigin(origin);
if (prerendering_status != NetworkPredictionStatus::ENABLED) {
FinalStatus final_status =
prerendering_status == NetworkPredictionStatus::DISABLED_DUE_TO_NETWORK
@@ -1285,6 +1289,16 @@ NetworkPredictionStatus PrerenderManager::GetPredictionStatus() const {
return CanPrefetchAndPrerenderUI(profile_->GetPrefs());
}
+NetworkPredictionStatus PrerenderManager::GetPredictionStatusForOrigin(
+ Origin origin) const {
+ NetworkPredictionStatus prediction_status = GetPredictionStatus();
+ if (prediction_status == NetworkPredictionStatus::DISABLED_DUE_TO_NETWORK
+ && origin == ORIGIN_EXTERNAL_REQUEST_FORCED_CUSTOMTABS) {
mmenke 2016/03/14 20:38:01 Do we really want to do this? How large are AMP p
Yusuf 2016/03/14 23:08:20 AMP in general is pretty cheap. On our end, we nev
+ prediction_status = NetworkPredictionStatus::ENABLED;
+ }
+ return prediction_status;
+}
+
void PrerenderManager::AddProfileNetworkBytesIfEnabled(int64_t bytes) {
DCHECK_GE(bytes, 0);
if (GetPredictionStatus() == NetworkPredictionStatus::ENABLED &&

Powered by Google App Engine
This is Rietveld 408576698