| Index: chrome/browser/prerender/prerender_manager.cc
|
| diff --git a/chrome/browser/prerender/prerender_manager.cc b/chrome/browser/prerender/prerender_manager.cc
|
| index f8093165d41e350bb503470ed64c5ced684e2ca0..8fa28e77ccfd0f700589f1023a07c5ba7351e56b 100644
|
| --- a/chrome/browser/prerender/prerender_manager.cc
|
| +++ b/chrome/browser/prerender/prerender_manager.cc
|
| @@ -298,7 +298,19 @@ PrerenderHandle* PrerenderManager::AddPrerenderFromExternalRequest(
|
| const content::Referrer& referrer,
|
| SessionStorageNamespace* session_storage_namespace,
|
| const gfx::Size& size) {
|
| - return AddPrerender(ORIGIN_EXTERNAL_REQUEST, url, referrer, size,
|
| + return AddPrerender(
|
| + ORIGIN_EXTERNAL_REQUEST, url, referrer, size, session_storage_namespace);
|
| +}
|
| +
|
| +PrerenderHandle* PrerenderManager::AddPrerenderOnCellularFromExternalRequest(
|
| + const GURL& url,
|
| + const content::Referrer& referrer,
|
| + SessionStorageNamespace* session_storage_namespace,
|
| + const gfx::Size& size) {
|
| + return AddPrerender(ORIGIN_EXTERNAL_REQUEST_FORCED_CELLULAR,
|
| + url,
|
| + referrer,
|
| + size,
|
| session_storage_namespace);
|
| }
|
|
|
| @@ -934,7 +946,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
|
| @@ -1283,6 +1296,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_CELLULAR) {
|
| + prediction_status = NetworkPredictionStatus::ENABLED;
|
| + }
|
| + return prediction_status;
|
| +}
|
| +
|
| void PrerenderManager::AddProfileNetworkBytesIfEnabled(int64_t bytes) {
|
| DCHECK_GE(bytes, 0);
|
| if (GetPredictionStatus() == NetworkPredictionStatus::ENABLED &&
|
|
|