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

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: Another round of comments 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..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();
}
}

Powered by Google App Engine
This is Rietveld 408576698