| Index: content/browser/download/download_resource_handler.cc
|
| diff --git a/content/browser/download/download_resource_handler.cc b/content/browser/download/download_resource_handler.cc
|
| index b9604bcde45740d39b35cd9c2a48acb2caa721a2..531f2093b7d8fa16b74096b9a16c75fedc88b466 100644
|
| --- a/content/browser/download/download_resource_handler.cc
|
| +++ b/content/browser/download/download_resource_handler.cc
|
| @@ -105,7 +105,7 @@ bool DownloadResourceHandler::OnResponseStarted(
|
| info->url_chain = request_->url_chain();
|
| info->referrer_url = GURL(request_->referrer());
|
| info->start_time = base::Time::Now();
|
| - info->received_bytes = 0;
|
| + info->received_bytes = save_info_.offset;
|
| info->total_bytes = content_length_;
|
| info->state = DownloadItem::IN_PROGRESS;
|
| info->download_id = download_id_;
|
| @@ -118,8 +118,16 @@ bool DownloadResourceHandler::OnResponseStarted(
|
| DownloadRequestHandle request_handle(rdh_, global_id_.child_id,
|
| render_view_id_, global_id_.request_id);
|
|
|
| - // TODO(ahendrickson) -- Get the last modified time and etag, so we can
|
| - // resume downloading.
|
| + // Get the last modified time and etag.
|
| + const net::HttpResponseHeaders* headers = request_->response_headers();
|
| + if (headers) {
|
| + std::string last_modified_hdr;
|
| + std::string etag;
|
| + if (headers->EnumerateHeader(NULL, "Last-Modified", &last_modified_hdr))
|
| + info->last_modified = last_modified_hdr;
|
| + if (headers->EnumerateHeader(NULL, "ETag", &etag))
|
| + info->etag = etag;
|
| + }
|
|
|
| CallStartedCB(net::OK);
|
|
|
|
|