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

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: rebase 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
« no previous file with comments | « chrome/browser/prerender/prerender_contents.h ('k') | chrome/browser/prerender/prerender_manager.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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();
}
}
« no previous file with comments | « chrome/browser/prerender/prerender_contents.h ('k') | chrome/browser/prerender/prerender_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698