Chromium Code Reviews| Index: chrome/browser/predictors/resource_prefetch_predictor.cc |
| diff --git a/chrome/browser/predictors/resource_prefetch_predictor.cc b/chrome/browser/predictors/resource_prefetch_predictor.cc |
| index 5f247e0151d04ad6f3cc1ed8c07f0dfe897ad7d6..9720e15b8156ef52f55c39e1899cfaa2fb630b6d 100644 |
| --- a/chrome/browser/predictors/resource_prefetch_predictor.cc |
| +++ b/chrome/browser/predictors/resource_prefetch_predictor.cc |
| @@ -88,7 +88,8 @@ ResourcePrefetchPredictor::URLRequestSummary::URLRequestSummary( |
| resource_url(other.resource_url), |
| resource_type(other.resource_type), |
| mime_type(other.mime_type), |
| - was_cached(other.was_cached) { |
| + was_cached(other.was_cached), |
| + redirect_url(other.redirect_url) { |
| } |
| ResourcePrefetchPredictor::URLRequestSummary::~URLRequestSummary() { |
| @@ -353,7 +354,18 @@ void ResourcePrefetchPredictor::OnMainFrameRedirect( |
| const URLRequestSummary& response) { |
| CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| + // Remove the older navigation. |
| inflight_navigations_.erase(response.navigation_id); |
| + |
| + // We do not see another navigation start for a redirect, so record the |
| + // redirect url as a new navigation. |
| + if (!response.redirect_url.is_valid()) |
|
dominich
2012/07/31 19:49:36
This should probably be is_empty(), and you probab
Shishir
2012/07/31 19:59:44
Done.
|
| + return; |
| + |
| + NavigationID navigation_id(response.navigation_id); |
| + navigation_id.main_frame_url = response.redirect_url; |
| + inflight_navigations_.insert(std::make_pair( |
| + navigation_id, std::vector<URLRequestSummary>())); |
| } |
| void ResourcePrefetchPredictor::OnSubresourceResponse( |