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

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

Issue 6966017: Remove a chrome dependency by removing Prerender from ResourceDispatcherHost. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Passing tracker through. Created 9 years, 7 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_contents.cc
diff --git a/chrome/browser/prerender/prerender_contents.cc b/chrome/browser/prerender/prerender_contents.cc
index be2cfe2d67b7f105afc28f5ce71668a0f457aaba..ca9b9c345e372579d469d5a2b8e2356bf1e2bc43 100644
--- a/chrome/browser/prerender/prerender_contents.cc
+++ b/chrome/browser/prerender/prerender_contents.cc
@@ -31,6 +31,7 @@
#include "content/browser/renderer_host/render_view_host.h"
#include "content/browser/renderer_host/resource_dispatcher_host.h"
#include "content/browser/renderer_host/resource_request_details.h"
+#include "content/browser/resource_context.h"
#include "content/browser/site_instance.h"
#include "content/browser/tab_contents/tab_contents_delegate.h"
#include "content/browser/tab_contents/tab_contents_view.h"
@@ -68,9 +69,12 @@ struct PrerenderUrlPredicate {
class PrerenderContentsFactoryImpl : public PrerenderContents::Factory {
public:
virtual PrerenderContents* CreatePrerenderContents(
- PrerenderManager* prerender_manager, Profile* profile, const GURL& url,
+ PrerenderManager* prerender_manager, Profile* profile,
+ PrerenderTracker* prerender_tracker,
+ const GURL& url,
const GURL& referrer) OVERRIDE {
- return new PrerenderContents(prerender_manager, profile, url, referrer);
+ return new PrerenderContents(prerender_manager, profile, prerender_tracker,
+ url, referrer);
}
};
@@ -125,6 +129,7 @@ class PrerenderContents::TabContentsDelegateImpl
PrerenderContents::PrerenderContents(PrerenderManager* prerender_manager,
Profile* profile,
+ PrerenderTracker* prerender_tracker,
const GURL& url,
const GURL& referrer)
: prerender_manager_(prerender_manager),
@@ -132,6 +137,7 @@ PrerenderContents::PrerenderContents(PrerenderManager* prerender_manager,
prerender_url_(url),
referrer_(referrer),
profile_(profile),
+ prerender_tracker_(prerender_tracker),
page_id_(0),
ALLOW_THIS_IN_INITIALIZER_LIST(tab_contents_observer_registrar_(this)),
has_stopped_loading_(false),
@@ -187,8 +193,10 @@ void PrerenderContents::StartPrerenderingOld(
// Register this with the PrerenderTracker as a prerendering RenderViewHost.
// This must be done before the Navigate message to catch all resource
// requests.
- PrerenderTracker::GetInstance()->OnPrerenderingStarted(child_id_, route_id_,
- prerender_manager_);
+ prerender_tracker_->OnPrerenderingStarted(
+ child_id_,
+ route_id_,
+ prerender_manager_);
// Close ourselves when the application is shutting down.
notification_registrar_.Add(this, NotificationType::APP_TERMINATING,
@@ -291,8 +299,10 @@ void PrerenderContents::StartPrerendering(
// RenderViewHost. This must be done before the Navigate message to catch all
// resource requests, but as it is on the same thread as the Navigate message
// (IO) there is no race condition.
- PrerenderTracker::GetInstance()->OnPrerenderingStarted(child_id_, route_id_,
- prerender_manager_);
+ prerender_tracker_->OnPrerenderingStarted(
+ child_id_,
+ route_id_,
+ prerender_manager_);
// Close ourselves when the application is shutting down.
notification_registrar_.Add(this, NotificationType::APP_TERMINATING,
@@ -381,7 +391,7 @@ PrerenderContents::~PrerenderContents() {
render_view_host_->Shutdown();
if (child_id_ != -1 && route_id_ != -1) {
- PrerenderTracker::GetInstance()->OnPrerenderingFinished(
+ prerender_tracker_->OnPrerenderingFinished(
mmenke 2011/05/24 17:56:22 nit: This now fits on a single line.
dominich 2011/05/24 18:01:47 Done.
child_id_, route_id_);
}
@@ -727,15 +737,14 @@ void PrerenderContents::Destroy(FinalStatus final_status) {
// because destroy may be called directly from the UI thread without calling
// TryCancel(). This is difficult to completely avoid, since prerendering
// can be cancelled before a RenderView is created.
- bool is_cancelled =
- PrerenderTracker::GetInstance()->TryCancel(child_id_, route_id_,
- final_status);
+ bool is_cancelled = prerender_tracker_->TryCancel(
+ child_id_, route_id_, final_status);
CHECK(is_cancelled);
// A different final status may have been set already from another thread.
// If so, use it instead.
- if (!PrerenderTracker::GetInstance()->GetFinalStatus(child_id_, route_id_,
- &final_status)) {
+ if (!prerender_tracker_->GetFinalStatus(child_id_, route_id_,
+ &final_status)) {
NOTREACHED();
}
}

Powered by Google App Engine
This is Rietveld 408576698