Chromium Code Reviews| 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 && |