Index: chrome/browser/net/resource_prefetch_predictor_observer.cc |
diff --git a/chrome/browser/net/resource_prefetch_predictor_observer.cc b/chrome/browser/net/resource_prefetch_predictor_observer.cc |
index 7f146006e3a1d7c9ac032e81ea74fcd98f89418a..2f45a1925359f3d0bbf8333c21adeb8e4bbb625f 100644 |
--- a/chrome/browser/net/resource_prefetch_predictor_observer.cc |
+++ b/chrome/browser/net/resource_prefetch_predictor_observer.cc |
@@ -8,6 +8,7 @@ |
#include "content/public/browser/browser_thread.h" |
#include "content/public/browser/resource_request_info.h" |
+#include "net/http/http_response_headers.h" |
#include "net/url_request/url_request.h" |
using content::BrowserThread; |
@@ -39,6 +40,17 @@ bool SummarizeResponse(net::URLRequest* request, |
request->GetMimeType(&summary->mime_type); |
summary->was_cached = request->was_cached(); |
+ // Try to determine if this is a redirect response. |
+ net::HttpResponseHeaders* headers = request->response_headers(); |
+ if (headers) { |
+ std::string value; |
+ if (headers->IsRedirect(&value)) { |
+ summary->redirect_url = request->url().Resolve(value); |
+ if (!summary->redirect_url.is_valid()) |
+ summary->redirect_url = GURL(); |
+ } |
+ } |
+ |
// We want to rely on the mime_type to determine the resource type since we |
// dont want types such as PREFETCH, SUB_RESOURCE, etc. |
summary->resource_type = |