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

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

Issue 6255005: Browser test for prerendering in general (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 11 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
===================================================================
--- chrome/browser/prerender/prerender_manager.cc (revision 71995)
+++ chrome/browser/prerender/prerender_manager.cc (working copy)
@@ -7,6 +7,7 @@
#include "base/logging.h"
#include "base/time.h"
#include "base/utf_string_conversions.h"
+#include "chrome/browser/browser_thread.h"
#include "chrome/browser/prerender/prerender_contents.h"
#include "chrome/browser/renderer_host/render_view_host.h"
#include "chrome/browser/tab_contents/tab_contents.h"
@@ -41,9 +42,14 @@
}
}
+void PrerenderManager::SetPrerenderContentsFactory(
+ PrerenderContents::Factory* prerender_contents_factory) {
+ prerender_contents_factory_.reset(prerender_contents_factory);
+}
+
void PrerenderManager::AddPreload(const GURL& url,
const std::vector<GURL>& alias_urls) {
- DCHECK(CalledOnValidThread());
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
DeleteOldEntries();
// If the URL already exists in the set of preloaded URLs, don't do anything.
for (std::list<PrerenderContentsData>::iterator it = prerender_list_.begin();
@@ -90,7 +96,7 @@
}
bool PrerenderManager::MaybeUsePreloadedPage(TabContents* tc, const GURL& url) {
- DCHECK(CalledOnValidThread());
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
scoped_ptr<PrerenderContents> pc(GetEntry(url));
if (pc.get() == NULL)
return false;
@@ -112,7 +118,7 @@
}
void PrerenderManager::RemoveEntry(PrerenderContents* entry) {
- DCHECK(CalledOnValidThread());
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
for (std::list<PrerenderContentsData>::iterator it = prerender_list_.begin();
it != prerender_list_.end();
++it) {
@@ -137,5 +143,21 @@
PrerenderContents* PrerenderManager::CreatePrerenderContents(
const GURL& url,
const std::vector<GURL>& alias_urls) {
+ if (prerender_contents_factory_.get()) {
cbentzel 2011/01/21 18:37:02 Should you just have a default factory which is cr
mmenke 2011/01/21 20:12:20 Done. I've seen both done in the code, but think
+ return prerender_contents_factory_->CreatePrerenderContents(
+ this, profile_, url, alias_urls);
+ }
return new PrerenderContents(this, profile_, url, alias_urls);
}
+
+PrerenderContents* PrerenderManager::FindEntry(const GURL& url) {
+ DeleteOldEntries();
cbentzel 2011/01/21 18:37:02 I'm not sure if you need to do pruning here.
mmenke 2011/01/21 20:12:20 Removed. I was thinking it would be easier to deb
+ for (std::list<PrerenderContentsData>::iterator it = prerender_list_.begin();
+ it != prerender_list_.end();
+ ++it) {
+ if (it->contents_->MatchesURL(url))
+ return it->contents_;
+ }
+ // Entry not found.
+ return NULL;
+}

Powered by Google App Engine
This is Rietveld 408576698