Index: content/browser/streams/stream_url_request_job.cc |
diff --git a/content/browser/streams/stream_url_request_job.cc b/content/browser/streams/stream_url_request_job.cc |
index e26fe35a41a66b90eaae5ee414d5b06a1d3761f6..69251bda5da1653ff4cece81315f02b86a3e4c73 100644 |
--- a/content/browser/streams/stream_url_request_job.cc |
+++ b/content/browser/streams/stream_url_request_job.cc |
@@ -23,7 +23,7 @@ StreamURLRequestJob::StreamURLRequestJob( |
net::URLRequest* request, |
net::NetworkDelegate* network_delegate, |
scoped_refptr<Stream> stream) |
- : net::URLRequestJob(request, network_delegate), |
+ : net::URLRangeRequestJob(request, network_delegate), |
stream_(stream), |
headers_set_(false), |
pending_buffer_size_(0), |
@@ -147,31 +147,18 @@ int StreamURLRequestJob::GetResponseCode() const { |
return response_info_->headers->response_code(); |
} |
-void StreamURLRequestJob::SetExtraRequestHeaders( |
- const net::HttpRequestHeaders& headers) { |
- std::string range_header; |
- if (headers.GetHeader(net::HttpRequestHeaders::kRange, &range_header)) { |
- std::vector<net::HttpByteRange> ranges; |
- if (net::HttpUtil::ParseRangeHeader(range_header, &ranges)) { |
- if (ranges.size() == 1) { |
- // Streams don't support seeking, so a non-zero starting position |
- // doesn't make sense. |
- if (ranges[0].first_byte_position() == 0) { |
- max_range_ = ranges[0].last_byte_position() + 1; |
- } else { |
- NotifyFailure(net::ERR_METHOD_NOT_SUPPORTED); |
- return; |
- } |
- } else { |
- NotifyFailure(net::ERR_METHOD_NOT_SUPPORTED); |
- return; |
- } |
+void StreamURLRequestJob::DidStart() { |
+ if (range_parse_result() == net::OK && ranges().size() > 0) { |
+ // Only one range is supported, and it must start at the first byte. |
+ if (ranges().size() > 1 || ranges()[0].first_byte_position() != 0) { |
+ NotifyFailure(net::ERR_METHOD_NOT_SUPPORTED); |
mmenke
2016/01/20 16:47:31
Note that the old code called NotifyFailure in Set
|
+ return; |
} |
+ |
+ max_range_ = ranges()[0].last_byte_position() + 1; |
} |
-} |
-void StreamURLRequestJob::DidStart() { |
- // We only support GET request. |
+ // This class only supports GET requests. |
if (request()->method() != "GET") { |
NotifyFailure(net::ERR_METHOD_NOT_SUPPORTED); |
return; |