Index: chrome/browser/prerender/prerender_contents.cc |
diff --git a/chrome/browser/prerender/prerender_contents.cc b/chrome/browser/prerender/prerender_contents.cc |
index b514478c7bc1eb7e82378cda19fbb1a843d7ede3..b5015ffb71af9354ec0320683967f774db209bc4 100644 |
--- a/chrome/browser/prerender/prerender_contents.cc |
+++ b/chrome/browser/prerender/prerender_contents.cc |
@@ -32,6 +32,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" |
@@ -69,9 +70,10 @@ struct PrerenderUrlPredicate { |
class PrerenderContentsFactoryImpl : public PrerenderContents::Factory { |
public: |
virtual PrerenderContents* CreatePrerenderContents( |
- PrerenderManager* prerender_manager, Profile* profile, const GURL& url, |
- const GURL& referrer) OVERRIDE { |
- return new PrerenderContents(prerender_manager, profile, url, referrer); |
+ PrerenderManager* prerender_manager, PrerenderTracker* prerender_tracker, |
+ Profile* profile, const GURL& url, const GURL& referrer) OVERRIDE { |
+ return new PrerenderContents(prerender_manager, prerender_tracker, profile, |
+ url, referrer); |
} |
}; |
@@ -125,10 +127,12 @@ class PrerenderContents::TabContentsDelegateImpl |
}; |
PrerenderContents::PrerenderContents(PrerenderManager* prerender_manager, |
+ PrerenderTracker* prerender_tracker, |
Profile* profile, |
const GURL& url, |
const GURL& referrer) |
: prerender_manager_(prerender_manager), |
+ prerender_tracker_(prerender_tracker), |
render_view_host_(NULL), |
prerender_url_(url), |
referrer_(referrer), |
@@ -188,8 +192,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, |
@@ -292,8 +298,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,10 +389,8 @@ PrerenderContents::~PrerenderContents() { |
if (render_view_host_) |
render_view_host_->Shutdown(); |
- if (child_id_ != -1 && route_id_ != -1) { |
- PrerenderTracker::GetInstance()->OnPrerenderingFinished( |
- child_id_, route_id_); |
- } |
+ if (child_id_ != -1 && route_id_ != -1) |
+ prerender_tracker_->OnPrerenderingFinished(child_id_, route_id_); |
// If we still have a TabContents, clean up anything we need to and then |
// destroy it. |
@@ -728,15 +734,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(); |
} |
} |