Index: content/browser/appcache/appcache_url_request_job.cc |
diff --git a/content/browser/appcache/appcache_url_request_job.cc b/content/browser/appcache/appcache_url_request_job.cc |
index b17d3d779612a01d65d6cb0c80db0b89988df84f..e8cb76176b63fa8e55a55b412cc01b8384518a68 100644 |
--- a/content/browser/appcache/appcache_url_request_job.cc |
+++ b/content/browser/appcache/appcache_url_request_job.cc |
@@ -24,7 +24,6 @@ |
#include "net/base/net_errors.h" |
#include "net/http/http_request_headers.h" |
#include "net/http/http_response_headers.h" |
-#include "net/http/http_util.h" |
#include "net/log/net_log_event_type.h" |
#include "net/log/net_log_with_source.h" |
#include "net/url_request/url_request.h" |
@@ -311,7 +310,7 @@ void AppCacheURLRequestJob::OnResponseInfoLoaded( |
storage_->CreateResponseReader(manifest_url_, entry_.response_id())); |
if (is_range_request()) |
- SetupRangeResponse(); |
+ SetupRangeResponse(reader_.get()); |
NotifyHeadersComplete(); |
} else { |
@@ -339,32 +338,6 @@ const net::HttpResponseInfo* AppCacheURLRequestJob::http_info() const { |
return info_->http_response_info(); |
} |
-void AppCacheURLRequestJob::SetupRangeResponse() { |
- DCHECK(is_range_request() && info_.get() && reader_.get() && |
- IsDeliveringAppCacheResponse()); |
- int resource_size = static_cast<int>(info_->response_data_size()); |
- if (resource_size < 0 || !range_requested_.ComputeBounds(resource_size)) { |
- range_requested_ = net::HttpByteRange(); |
- return; |
- } |
- |
- DCHECK(range_requested_.IsValid()); |
- int offset = static_cast<int>(range_requested_.first_byte_position()); |
- int length = static_cast<int>(range_requested_.last_byte_position() - |
- range_requested_.first_byte_position() + 1); |
- |
- // Tell the reader about the range to read. |
- reader_->SetReadRange(offset, length); |
- |
- // Make a copy of the full response headers and fix them up |
- // for the range we'll be returning. |
- range_response_info_.reset( |
- new net::HttpResponseInfo(*info_->http_response_info())); |
- net::HttpResponseHeaders* headers = range_response_info_->headers.get(); |
- headers->UpdateWithNewRange( |
- range_requested_, resource_size, true /* replace status line */); |
-} |
- |
void AppCacheURLRequestJob::OnReadComplete(int result) { |
DCHECK(IsDeliveringAppCacheResponse()); |
if (result == 0) { |
@@ -440,17 +413,7 @@ net::HostPortPair AppCacheURLRequestJob::GetSocketAddress() const { |
void AppCacheURLRequestJob::SetExtraRequestHeaders( |
const net::HttpRequestHeaders& headers) { |
- std::string value; |
- std::vector<net::HttpByteRange> ranges; |
- if (!headers.GetHeader(net::HttpRequestHeaders::kRange, &value) || |
- !net::HttpUtil::ParseRangeHeader(value, &ranges)) { |
- return; |
- } |
- |
- // If multiple ranges are requested, we play dumb and |
- // return the entire response with 200 OK. |
- if (ranges.size() == 1U) |
- range_requested_ = ranges[0]; |
+ InitializeRangeRequestInfo(headers); |
} |
void AppCacheURLRequestJob::NotifyRestartRequired() { |