| Index: chrome/browser/prerender/prerender_manager.cc
|
| diff --git a/chrome/browser/prerender/prerender_manager.cc b/chrome/browser/prerender/prerender_manager.cc
|
| index 9380c80747e20c497339a506a2c3525afdbf182e..4a844efee36d1e641ddb5da6ac8ee4c1a06e0104 100644
|
| --- a/chrome/browser/prerender/prerender_manager.cc
|
| +++ b/chrome/browser/prerender/prerender_manager.cc
|
| @@ -20,6 +20,7 @@
|
| #include "base/memory/ptr_util.h"
|
| #include "base/metrics/histogram.h"
|
| #include "base/single_thread_task_runner.h"
|
| +#include "base/sys_info.h"
|
| #include "base/threading/thread_task_runner_handle.h"
|
| #include "base/time/time.h"
|
| #include "base/timer/elapsed_timer.h"
|
| @@ -846,6 +847,10 @@ void PrerenderManager::SourceNavigatedAway(PrerenderData* prerender_data) {
|
| }
|
| }
|
|
|
| +bool PrerenderManager::IsLowEndDevice() const {
|
| + return base::SysInfo::IsLowEndDevice();
|
| +}
|
| +
|
| std::unique_ptr<PrerenderHandle> PrerenderManager::AddPrerender(
|
| Origin origin,
|
| const GURL& url_arg,
|
| @@ -854,6 +859,11 @@ std::unique_ptr<PrerenderHandle> PrerenderManager::AddPrerender(
|
| SessionStorageNamespace* session_storage_namespace) {
|
| DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
|
|
| + // Allow only Requests for offlining on low end devices, the lifetime of
|
| + // those prerenders is managed by the offliner.
|
| + if (IsLowEndDevice() && origin != ORIGIN_OFFLINE)
|
| + return nullptr;
|
| +
|
| if ((origin == ORIGIN_LINK_REL_PRERENDER_CROSSDOMAIN ||
|
| origin == ORIGIN_LINK_REL_PRERENDER_SAMEDOMAIN) &&
|
| IsGoogleSearchResultURL(referrer.url)) {
|
|
|