Index: net/url_request/url_request_http_job.cc |
diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc |
index 947686cb9f2d9184310d031780b0c46fb5265d62..a026add3f8647ea95621f515ce49989b9e70eaef 100644 |
--- a/net/url_request/url_request_http_job.cc |
+++ b/net/url_request/url_request_http_job.cc |
@@ -289,6 +289,11 @@ void URLRequestHttpJob::Kill() { |
void URLRequestHttpJob::NotifyHeadersComplete() { |
DCHECK(!response_info_); |
+ if (GetResponseHeaders()->HasSafeRedirect()) { |
+ // Do not store non-server-issued redirects in cache. |
+ transaction_->StopCaching(); |
mmenke
2014/03/20 15:22:25
I don't think we actually need this. My cache com
robwu
2014/03/20 16:21:11
DoneReading() just calls DoneWritingToEntry(true);
mmenke
2014/03/20 16:40:28
We should have a test for that, too, then.
Does t
mmenke
2014/03/20 17:22:38
Turns out this is a bug added back in September by
robwu
2014/03/20 17:28:14
Okay, great!
Do you think whether it's acceptable
|
+ } |
+ |
response_info_ = transaction_->GetResponseInfo(); |
// Save boolean, as we'll need this info at destruction time, and filters may |
@@ -1037,6 +1042,9 @@ bool URLRequestHttpJob::IsSafeRedirect(const GURL& location) { |
(location.scheme() == "http" || location.scheme() == "https")) { |
return true; |
} |
+ if (GetResponseHeaders()->IsSafeRedirect(location)) { |
mmenke
2014/03/20 15:22:25
I don't think this should be part of the headers,
robwu
2014/03/20 16:21:11
So, basically the situation from patch set 1?
Then
mmenke
2014/03/20 16:40:28
We allow overriding the entire headers, so I don't
robwu
2014/03/20 17:28:14
After re-reading your previous comment, I see that
mmenke
2014/03/20 17:31:59
Not sure you're completely following me... Here's
|
+ return true; |
+ } |
// Query URLRequestJobFactory as to whether |location| would be safe to |
// redirect to. |
return request_->context()->job_factory() && |