| 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..77d220edb8198a558d9488dd3132184b2bfa7139 100644
|
| --- a/chrome/browser/prerender/prerender_tracker.cc
|
| +++ b/chrome/browser/prerender/prerender_tracker.cc
|
| @@ -3,44 +3,29 @@
|
| // 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"
|
| #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)
|
| +PrerenderTracker::RenderViewInfo::RenderViewInfo(
|
| + PrerenderManager* prerender_manager)
|
| : final_status(FINAL_STATUS_MAX),
|
| prerender_manager(prerender_manager->AsWeakPtr()) {
|
| - }
|
| +}
|
|
|
| - FinalStatus final_status;
|
| - base::WeakPtr<PrerenderManager> prerender_manager;
|
| -};
|
| +PrerenderTracker::RenderViewInfo::~RenderViewInfo() {
|
| +}
|
|
|
| -// static
|
| -PrerenderTracker* PrerenderTracker::GetInstance() {
|
| - return Singleton<PrerenderTracker>::get();
|
| +PrerenderTracker::PrerenderTracker() {
|
| +}
|
| +
|
| +PrerenderTracker::~PrerenderTracker() {
|
| }
|
|
|
| bool PrerenderTracker::TryUse(int child_id, int route_id) {
|
| @@ -74,15 +59,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 +94,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 +150,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 +180,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
|
|
|