| Index: chrome/browser/prerender/prerender_tracker.cc
|
| diff --git a/chrome/browser/prerender/prerender_tracker.cc b/chrome/browser/prerender/prerender_tracker.cc
|
| index 185e9678042d149ff0167dfd9fd1679fd7174bf5..bcd95e69993d9079d90278e15d1daba87739aba8 100644
|
| --- a/chrome/browser/prerender/prerender_tracker.cc
|
| +++ b/chrome/browser/prerender/prerender_tracker.cc
|
| @@ -20,36 +20,6 @@ namespace prerender {
|
|
|
| namespace {
|
|
|
| -bool ShouldCancelRequest(
|
| - int child_id,
|
| - int route_id) {
|
| - // Check if the RenderViewHost associated with (child_id, route_id) no
|
| - // longer exists, or has already been swapped out for a prerendered page.
|
| - // If that happens, then we do not want to issue the request which originated
|
| - // from it. Otherwise, keep it going.
|
| - // The RenderViewHost may exist for a couple of different reasons: such as
|
| - // being an XHR from the originating page, being included as an iframe,
|
| - // being requested as a favicon or stylesheet, and many other corner cases.
|
| - RenderViewHost* render_view_host =
|
| - RenderViewHost::FromID(child_id, route_id);
|
| - if (!render_view_host)
|
| - return true;
|
| - PrerenderManager* prerender_manager =
|
| - FindPrerenderManagerUsingRenderProcessId(child_id);
|
| - return (prerender_manager &&
|
| - prerender_manager->IsOldRenderViewHost(render_view_host));
|
| -}
|
| -
|
| -void HandleDelayedRequestOnUIThread(
|
| - int child_id,
|
| - int route_id,
|
| - const PrerenderTracker::CheckURLCallback& callback) {
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| - bool should_cancel = ShouldCancelRequest(child_id, route_id);
|
| - BrowserThread::PostTask(
|
| - BrowserThread::IO, FROM_HERE, base::Bind(callback, !should_cancel));
|
| -}
|
| -
|
| void DestroyPrerenderForRenderViewOnUI(
|
| const base::WeakPtr<PrerenderManager>& prerender_manager_weak_ptr,
|
| int render_process_id,
|
| @@ -64,63 +34,8 @@ void DestroyPrerenderForRenderViewOnUI(
|
| render_process_id, render_view_id, final_status);
|
| }
|
|
|
| -
|
| -void AddURL(const GURL& url, URLCounter* counter) {
|
| - DCHECK(counter);
|
| - counter->AddURL(url);
|
| -}
|
| -
|
| -void RemoveURLs(const std::vector<GURL>& urls, URLCounter* counter) {
|
| - DCHECK(counter);
|
| - counter->RemoveURLs(urls);
|
| -}
|
| -
|
| } // namespace
|
|
|
| -URLCounter::URLCounter() {
|
| - // URLCounter is currently constructed on the UI thread but
|
| - // accessed on the IO thread.
|
| - DetachFromThread();
|
| -}
|
| -
|
| -URLCounter::~URLCounter() {
|
| - // URLCounter is currently destructed on the UI thread but
|
| - // accessed on the IO thread.
|
| - DetachFromThread();
|
| -}
|
| -
|
| -bool URLCounter::MatchesURL(const GURL& url) const {
|
| - DCHECK(CalledOnValidThread());
|
| - URLCountMap::const_iterator it = url_count_map_.find(url);
|
| - if (it == url_count_map_.end())
|
| - return false;
|
| - DCHECK(it->second > 0);
|
| - return true;
|
| -}
|
| -
|
| -void URLCounter::AddURL(const GURL& url) {
|
| - DCHECK(CalledOnValidThread());
|
| - URLCountMap::iterator it = url_count_map_.find(url);
|
| - if (it == url_count_map_.end())
|
| - url_count_map_[url] = 1;
|
| - else
|
| - it->second++;
|
| -}
|
| -
|
| -void URLCounter::RemoveURLs(const std::vector<GURL>& urls) {
|
| - DCHECK(CalledOnValidThread());
|
| - for (std::vector<GURL>::const_iterator it = urls.begin();
|
| - it != urls.end();
|
| - ++it) {
|
| - URLCountMap::iterator map_entry = url_count_map_.find(*it);
|
| - DCHECK(url_count_map_.end() != map_entry);
|
| - DCHECK(map_entry->second > 0);
|
| - --map_entry->second;
|
| - if (map_entry->second == 0)
|
| - url_count_map_.erase(map_entry);
|
| - }
|
| -}
|
| -
|
| struct RenderViewInfo {
|
| explicit RenderViewInfo(PrerenderManager* prerender_manager)
|
| : final_status(FINAL_STATUS_MAX),
|
| @@ -169,34 +84,6 @@ bool PrerenderTracker::TryCancelOnIOThread(
|
| return TryCancel(child_id, route_id, final_status);
|
| }
|
|
|
| -bool PrerenderTracker::PotentiallyDelayRequestOnIOThread(
|
| - const GURL& gurl,
|
| - int process_id,
|
| - int route_id,
|
| - const CheckURLCallback& callback) {
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
|
| - if (!url_counter_.MatchesURL(gurl))
|
| - return false;
|
| - BrowserThread::PostTask(
|
| - BrowserThread::UI,
|
| - FROM_HERE,
|
| - base::Bind(&HandleDelayedRequestOnUIThread, process_id, route_id,
|
| - callback));
|
| - return true;
|
| -}
|
| -
|
| -void PrerenderTracker::AddPrerenderURLOnUIThread(const GURL& url) {
|
| - BrowserThread::PostTask(
|
| - BrowserThread::IO, FROM_HERE, base::Bind(&AddURL, url, &url_counter_));
|
| -}
|
| -
|
| -void PrerenderTracker::RemovePrerenderURLsOnUIThread(
|
| - const std::vector<GURL>& urls) {
|
| - BrowserThread::PostTask(
|
| - BrowserThread::IO, FROM_HERE,
|
| - base::Bind(&RemoveURLs, urls, &url_counter_));
|
| -}
|
| -
|
| bool PrerenderTracker::GetFinalStatus(int child_id, int route_id,
|
| FinalStatus* final_status) const {
|
| ChildRouteIdPair child_route_id_pair(child_id, route_id);
|
|
|