diff options
author | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-21 00:30:57 +0000 |
---|---|---|
committer | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-21 00:30:57 +0000 |
commit | 48ed2610d757483f2e4ebddda617fd7e92855d5a (patch) | |
tree | af88817f0b430cae1891b72ffe705c5cd60e5c66 /chrome/browser/prerender/prerender_tracker.cc | |
parent | 6ae1a53f455cf37cb655557afa436e04c9a26eb0 (diff) | |
download | chromium_src-48ed2610d757483f2e4ebddda617fd7e92855d5a.zip chromium_src-48ed2610d757483f2e4ebddda617fd7e92855d5a.tar.gz chromium_src-48ed2610d757483f2e4ebddda617fd7e92855d5a.tar.bz2 |
Make PrerenderTracker's resource_throttle_io_thread_map_ use RenderFrame IDs instead of RenderView IDs.
BUG=330735
R=davidben@chromium.org, tburkard@chromium.org
Review URL: https://codereview.chromium.org/141163002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@245958 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/prerender/prerender_tracker.cc')
-rw-r--r-- | chrome/browser/prerender/prerender_tracker.cc | 92 |
1 files changed, 1 insertions, 91 deletions
diff --git a/chrome/browser/prerender/prerender_tracker.cc b/chrome/browser/prerender/prerender_tracker.cc index 71798c9..8d0769c 100644 --- a/chrome/browser/prerender/prerender_tracker.cc +++ b/chrome/browser/prerender/prerender_tracker.cc @@ -7,6 +7,7 @@ #include "base/bind.h" #include "base/logging.h" #include "chrome/browser/browser_process.h" +#include "chrome/browser/prerender/prerender_contents.h" #include "chrome/browser/prerender/prerender_manager.h" #include "chrome/browser/prerender/prerender_pending_swap_throttle.h" #include "chrome/browser/prerender/prerender_resource_throttle.h" @@ -36,50 +37,6 @@ PrerenderTracker::PrerenderTracker() { PrerenderTracker::~PrerenderTracker() { } -void PrerenderTracker::OnPrerenderStart( - PrerenderContents* prerender_contents) { - DCHECK(CalledOnValidThread()); - int child_id, route_id; - bool got_child_id = prerender_contents->GetChildId(&child_id); - DCHECK(got_child_id); - bool got_route_id = prerender_contents->GetRouteId(&route_id); - DCHECK(got_route_id); - - ChildRouteIdPair child_route_id_pair(child_id, route_id); - - BrowserThread::PostTask( - BrowserThread::IO, FROM_HERE, - base::Bind(&PrerenderTracker::AddPrerenderOnIOThread, - base::Unretained(this), child_route_id_pair)); -} - -void PrerenderTracker::OnPrerenderStop( - PrerenderContents* prerender_contents) { - DCHECK(CalledOnValidThread()); - int child_id, route_id; - bool got_child_id = prerender_contents->GetChildId(&child_id); - DCHECK(got_child_id); - bool got_route_id = prerender_contents->GetRouteId(&route_id); - DCHECK(got_route_id); - - ChildRouteIdPair child_route_id_pair(child_id, route_id); - - DCHECK_LT(prerender_contents->final_status(), FINAL_STATUS_MAX); - BrowserThread::PostTask( - BrowserThread::IO, FROM_HERE, - base::Bind(&PrerenderTracker::RemovePrerenderOnIOThread, - base::Unretained(this), child_route_id_pair, - prerender_contents->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 resource_throttle_io_thread_map_.count(child_route_id_pair) > 0; -} - bool PrerenderTracker::IsPendingSwapRequestOnIOThread( int render_process_id, int render_frame_id, const GURL& url) const { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); @@ -91,19 +48,6 @@ bool PrerenderTracker::IsPendingSwapRequestOnIOThread( return (it != pending_swap_throttle_map_.end() && it->second.url == url); } -void PrerenderTracker::AddResourceThrottleOnIOThread( - int child_id, - int route_id, - const base::WeakPtr<PrerenderResourceThrottle>& throttle) { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); - - ChildRouteIdPair child_route_id_pair(child_id, route_id); - ResourceThrottleMap::iterator resource_throttle_map_it = - resource_throttle_io_thread_map_.find(child_route_id_pair); - DCHECK(resource_throttle_map_it != resource_throttle_io_thread_map_.end()); - resource_throttle_map_it->second.push_back(throttle); -} - void PrerenderTracker::AddPendingSwapThrottleOnIOThread( int render_process_id, int render_frame_id, @@ -122,40 +66,6 @@ void PrerenderTracker::AddPendingSwapThrottleOnIOThread( it->second.throttle = throttle; } -void PrerenderTracker::AddPrerenderOnIOThread( - const ChildRouteIdPair& child_route_id_pair) { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); - DCHECK(!IsPrerenderingOnIOThread(child_route_id_pair.first, - child_route_id_pair.second)); - - resource_throttle_io_thread_map_.insert( - std::make_pair(child_route_id_pair, ResourceThrottleList())); -} - -void PrerenderTracker::RemovePrerenderOnIOThread( - const ChildRouteIdPair& child_route_id_pair, - FinalStatus final_status) { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); - DCHECK(IsPrerenderingOnIOThread(child_route_id_pair.first, - child_route_id_pair.second)); - - // Cancel or resume all throttled resources. - ResourceThrottleMap::iterator resource_throttle_map_it = - resource_throttle_io_thread_map_.find(child_route_id_pair); - DCHECK(resource_throttle_map_it != resource_throttle_io_thread_map_.end()); - ResourceThrottleList& throttles = resource_throttle_map_it->second; - for (size_t i = 0; i < throttles.size(); i++) { - if (throttles[i]) { - if (final_status == FINAL_STATUS_USED) { - throttles[i]->Resume(); - } else { - throttles[i]->Cancel(); - } - } - } - resource_throttle_io_thread_map_.erase(resource_throttle_map_it); -} - void PrerenderTracker::AddPrerenderPendingSwapOnIOThread( const ChildRouteIdPair& render_frame_route_id_pair, const GURL& url) { |