| 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..c9c4b5f5ca9aad46c5aa9f1b57aae2f22f8bda7f 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,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);
|
| }
|
| };
|
|
|
| @@ -124,10 +126,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),
|
| @@ -187,8 +191,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 +297,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,
|
| @@ -380,10 +388,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.
|
| @@ -727,15 +733,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();
|
| }
|
| }
|
|
|