summaryrefslogtreecommitdiffstats
path: root/chrome/browser/prerender/prerender_tracker.cc
diff options
context:
space:
mode:
authordominich@chromium.org <dominich@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-25 19:03:27 +0000
committerdominich@chromium.org <dominich@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-25 19:03:27 +0000
commit1459fb6d13c6e8da1fd72a569e9410a1d038bd59 (patch)
tree869478ccf95444e29cffb9e5e70acc0015379057 /chrome/browser/prerender/prerender_tracker.cc
parent8b001f3e36a29f590e57d46e8e1b357685eb38c1 (diff)
downloadchromium_src-1459fb6d13c6e8da1fd72a569e9410a1d038bd59.zip
chromium_src-1459fb6d13c6e8da1fd72a569e9410a1d038bd59.tar.gz
chromium_src-1459fb6d13c6e8da1fd72a569e9410a1d038bd59.tar.bz2
Remove a chrome dependency by removing Prerender from ResourceDispatcherHost.
BUG=82590,77090 TEST=Prerender* Review URL: http://codereview.chromium.org/6966017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86667 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/prerender/prerender_tracker.cc')
-rw-r--r--chrome/browser/prerender/prerender_tracker.cc64
1 files changed, 24 insertions, 40 deletions
diff --git a/chrome/browser/prerender/prerender_tracker.cc b/chrome/browser/prerender/prerender_tracker.cc
index f191e8c..19de266 100644
--- a/chrome/browser/prerender/prerender_tracker.cc
+++ b/chrome/browser/prerender/prerender_tracker.cc
@@ -2,45 +2,33 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "chrome/browser/prerender/prerender_tracker.h"
+
#include "base/logging.h"
+#include "chrome/browser/browser_process.h"
#include "chrome/browser/prerender/prerender_manager.h"
-#include "chrome/browser/prerender/prerender_tracker.h"
#include "content/browser/browser_thread.h"
+#include "content/browser/resource_context.h"
+#include "content/common/resource_messages.h"
+#include "net/base/load_flags.h"
namespace prerender {
-namespace {
-
-void DestroyPreloadForRenderView(
- const base::WeakPtr<PrerenderManager>& prerender_manager_weak_ptr,
- int child_id,
- int route_id,
- FinalStatus final_status) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- PrerenderManager* prerender_manager = prerender_manager_weak_ptr.get();
- if (!prerender_manager)
- return;
-
- prerender_manager->DestroyPreloadForChildRouteIdPair(
- std::make_pair(child_id, route_id),
- final_status);
-}
-
-} // namespace
-
struct RenderViewInfo {
explicit RenderViewInfo(PrerenderManager* prerender_manager)
: final_status(FINAL_STATUS_MAX),
prerender_manager(prerender_manager->AsWeakPtr()) {
}
+ ~RenderViewInfo() {}
FinalStatus final_status;
base::WeakPtr<PrerenderManager> prerender_manager;
};
-// static
-PrerenderTracker* PrerenderTracker::GetInstance() {
- return Singleton<PrerenderTracker>::get();
+PrerenderTracker::PrerenderTracker() {
+}
+
+PrerenderTracker::~PrerenderTracker() {
}
bool PrerenderTracker::TryUse(int child_id, int route_id) {
@@ -74,15 +62,6 @@ bool PrerenderTracker::TryCancelOnIOThread(
return TryCancel(child_id, route_id, final_status);
}
-bool PrerenderTracker::IsPrerenderingOnIOThread(int child_id,
- int route_id) const {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
-
- ChildRouteIdPair child_route_id_pair(child_id, route_id);
- return possibly_prerendering_io_thread_set_.end() !=
- possibly_prerendering_io_thread_set_.find(child_route_id_pair);
-}
-
bool PrerenderTracker::GetFinalStatus(int child_id, int route_id,
FinalStatus* final_status) const {
ChildRouteIdPair child_route_id_pair(child_id, route_id);
@@ -118,12 +97,6 @@ void PrerenderTracker::OnPrerenderingStarted(
std::make_pair(child_route_id_pair, RenderViewInfo(prerender_manager)));
}
-PrerenderTracker::PrerenderTracker() {
-}
-
-PrerenderTracker::~PrerenderTracker() {
-}
-
void PrerenderTracker::OnPrerenderingFinished(int child_id, int route_id) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
DCHECK_GE(child_id, 0);
@@ -180,6 +153,15 @@ bool PrerenderTracker::SetFinalStatus(int child_id, int route_id,
return false;
}
+bool PrerenderTracker::IsPrerenderingOnIOThread(int child_id,
+ int route_id) const {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
+
+ ChildRouteIdPair child_route_id_pair(child_id, route_id);
+ return possibly_prerendering_io_thread_set_.end() !=
+ possibly_prerendering_io_thread_set_.find(child_route_id_pair);
+}
+
void PrerenderTracker::AddPrerenderOnIOThread(
const ChildRouteIdPair& child_route_id_pair) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
@@ -201,13 +183,15 @@ void PrerenderTracker::RemovePrerenderOnIOThread(
// static
void PrerenderTracker::AddPrerenderOnIOThreadTask(
const ChildRouteIdPair& child_route_id_pair) {
- GetInstance()->AddPrerenderOnIOThread(child_route_id_pair);
+ g_browser_process->prerender_tracker()->AddPrerenderOnIOThread(
+ child_route_id_pair);
}
// static
void PrerenderTracker::RemovePrerenderOnIOThreadTask(
const ChildRouteIdPair& child_route_id_pair) {
- GetInstance()->RemovePrerenderOnIOThread(child_route_id_pair);
+ g_browser_process->prerender_tracker()->RemovePrerenderOnIOThread(
+ child_route_id_pair);
}
} // namespace prerender