Index: chrome/browser/android/intercept_download_resource_throttle.cc |
diff --git a/chrome/browser/android/intercept_download_resource_throttle.cc b/chrome/browser/android/intercept_download_resource_throttle.cc |
index d95674418f381ac815c41fb6184ab1543aa83641..1101b1e9ebe211f02312e6dee8bb98c658552f65 100644 |
--- a/chrome/browser/android/intercept_download_resource_throttle.cc |
+++ b/chrome/browser/android/intercept_download_resource_throttle.cc |
@@ -30,10 +30,6 @@ InterceptDownloadResourceThrottle::InterceptDownloadResourceThrottle( |
InterceptDownloadResourceThrottle::~InterceptDownloadResourceThrottle() { |
} |
-void InterceptDownloadResourceThrottle::WillStartRequest(bool* defer) { |
- ProcessDownloadRequest(); |
-} |
- |
void InterceptDownloadResourceThrottle::WillProcessResponse(bool* defer) { |
ProcessDownloadRequest(); |
} |
@@ -53,14 +49,16 @@ void InterceptDownloadResourceThrottle::ProcessDownloadRequest() { |
if (request_->method() != net::HttpRequestHeaders::kGetMethod) |
return; |
+ net::HttpRequestHeaders headers; |
+ if (!request_->GetFullRequestHeaders(&headers)) |
+ return; |
+ |
// In general, if the request uses HTTP authorization, either with the origin |
// or a proxy, then the network stack should handle the download. The one |
// exception is a request that is fetched via the Chrome Proxy and does not |
// authenticate with the origin. |
if (request_->response_info().did_use_http_auth) { |
#if defined(SPDY_PROXY_AUTH_ORIGIN) |
- net::HttpRequestHeaders headers; |
- request_->GetFullRequestHeaders(&headers); |
if (headers.HasHeader(net::HttpRequestHeaders::kAuthorization) || |
!(request_->response_info().headers && |
data_reduction_proxy::HasDataReductionProxyViaHeader( |
@@ -75,7 +73,7 @@ void InterceptDownloadResourceThrottle::ProcessDownloadRequest() { |
// For OMA DRM downloads, Android Download Manager doesn't handle them |
// correctly. Use chromium network stack instead. http://crbug.com/382698. |
std::string mime; |
- const_cast<net::URLRequest*>(request_)->GetMimeType(&mime); |
+ request_->GetMimeType(&mime); |
if (!mime.compare(kOmaDrmContentMime) || !mime.compare(kOmaDrmMessageMime)) |
return; |