Index: content/renderer/media/android/media_info_loader.cc |
diff --git a/content/renderer/media/android/media_info_loader.cc b/content/renderer/media/android/media_info_loader.cc |
index 3c22389e46e259e06265eb931cd9f29ec40cced1..ce3a299b7193b3bd36e5b23ac7f02175334f0eb7 100644 |
--- a/content/renderer/media/android/media_info_loader.cc |
+++ b/content/renderer/media/android/media_info_loader.cc |
@@ -22,6 +22,7 @@ using blink::WebURLResponse; |
namespace content { |
static const int kHttpOK = 200; |
+static const int kHttpPartialContentOK = 206; |
MediaInfoLoader::MediaInfoLoader( |
const GURL& url, |
@@ -50,6 +51,12 @@ void MediaInfoLoader::Start(blink::WebFrame* frame) { |
request.setRequestContext(WebURLRequest::RequestContextVideo); |
frame->setReferrerForRequest(request, blink::WebURL()); |
+ // Since we don't actually care about the media data at this time, use a two |
+ // byte range request to avoid unnecessarily downloading resources. Not all |
+ // servers support HEAD unfortunately, so use a range request; which is no |
+ // worse than the previous request+cancel code. See http://crbug.com/400788 |
+ request.addHTTPHeaderField("Range", "bytes=0-1"); |
+ |
scoped_ptr<WebURLLoader> loader; |
if (test_loader_) { |
loader = test_loader_.Pass(); |
@@ -123,7 +130,8 @@ void MediaInfoLoader::didReceiveResponse( |
DidBecomeReady(kOk); |
return; |
} |
- if (response.httpStatusCode() == kHttpOK) { |
+ if (response.httpStatusCode() == kHttpOK || |
+ response.httpStatusCode() == kHttpPartialContentOK) { |
DidBecomeReady(kOk); |
return; |
} |