Chromium Code Reviews| Index: chrome/browser/prerender/prerender_tracker.cc |
| diff --git a/chrome/browser/prerender/prerender_tracker.cc b/chrome/browser/prerender/prerender_tracker.cc |
| index f191e8c9a41327e6de19825d8a9ab89108b4270b..1a0d1078fec8e455265d735451236d7f4806cc9b 100644 |
| --- a/chrome/browser/prerender/prerender_tracker.cc |
| +++ b/chrome/browser/prerender/prerender_tracker.cc |
| @@ -3,44 +3,31 @@ |
| // found in the LICENSE file. |
| #include "base/logging.h" |
| +#include "chrome/browser/browser_process.h" |
| #include "chrome/browser/prerender/prerender_manager.h" |
| #include "chrome/browser/prerender/prerender_tracker.h" |
|
mmenke
2011/05/25 00:56:24
nit: This should go first.
dominich
2011/05/25 16:42:28
Done.
|
| #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 +61,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 +96,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 +152,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 +182,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 |