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

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

Issue 7517016: Add prerender to ChromeOS. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add prerender_condition.h and OVERRIDE Created 9 years, 5 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 e63200d33ad3cf056330d4bdaf0cd29cad4f9adf..39fee2830d0f23359b9e8004cd01ea252d508ecc 100644
--- a/chrome/browser/prerender/prerender_manager.cc
+++ b/chrome/browser/prerender/prerender_manager.cc
@@ -10,11 +10,13 @@
#include "base/logging.h"
#include "base/metrics/field_trial.h"
#include "base/metrics/histogram.h"
+#include "base/stl_util.h"
#include "base/time.h"
#include "base/values.h"
#include "base/utf_string_conversions.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/favicon/favicon_tab_helper.h"
+#include "chrome/browser/prerender/prerender_condition.h"
#include "chrome/browser/prerender/prerender_contents.h"
#include "chrome/browser/prerender/prerender_final_status.h"
#include "chrome/browser/prerender/prerender_history.h"
@@ -216,6 +218,7 @@ PrerenderManager::PrerenderManager(Profile* profile,
PrerenderManager::~PrerenderManager() {
DestroyAllContents(FINAL_STATUS_MANAGER_SHUTDOWN);
+ STLDeleteElements(&prerender_conditions_);
}
void PrerenderManager::SetPrerenderContentsFactory(
@@ -694,7 +697,17 @@ void PrerenderManager::RecordPerceivedPageLoadTime(
bool PrerenderManager::is_enabled() const {
DCHECK(CalledOnValidThread());
- return enabled_;
+ if (!enabled_)
+ return false;
+ for (std::list<const PrerenderCondition*>::const_iterator it =
+ prerender_conditions_.begin();
+ it != prerender_conditions_.end();
+ ++it) {
+ const PrerenderCondition* condition = *it;
+ if (!condition->CanPrerender())
+ return false;
+ }
+ return true;
}
void PrerenderManager::set_enabled(bool enabled) {
@@ -702,6 +715,10 @@ void PrerenderManager::set_enabled(bool enabled) {
enabled_ = enabled;
}
+void PrerenderManager::AddCondition(const PrerenderCondition* condition) {
+ prerender_conditions_.push_back(condition);
+}
+
PrerenderContents* PrerenderManager::FindEntry(const GURL& url) {
DCHECK(CalledOnValidThread());
for (std::list<PrerenderContentsData>::iterator it = prerender_list_.begin();

Powered by Google App Engine
This is Rietveld 408576698