New issue
Advanced search Search tips

Issue 706181 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 3
Type: Bug



Sign in to add a comment

Parallel Downloading, the subsequent requests are not expected to use If-Range header.

Project Member Reported by xingliu@chromium.org, Mar 28 2017

Issue description

Currently half open partial requests use If-Range header.

When using If-Range, if the server has a new version of the file, it will return http 200 and the full content.

Parallel download sub-requests shouldn't use this since the etag has already been compared in the initial request. and sub requests should use the etag refreshed in the initial request which is just updated at most a few seconds ago.

The subsequent requests will fail unless the server passes the initial request's etag check but failed on the later requests, which is very weird, and probably indicate some kind of issue on the server Or the server just update the file. In these rare edge cases, we should interrupt the download.
 
Status: Started (was: Assigned)
Project Member

Comment 2 by bugdroid1@chromium.org, Mar 30 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b791e0b97910713700bf8e4f3396521cff290d3b

commit b791e0b97910713700bf8e4f3396521cff290d3b
Author: xingliu <xingliu@chromium.org>
Date: Thu Mar 30 23:38:58 2017

Add control to use If-Range header for range request.

Currently If-Range is used in all half opened request, including normal
download resumption, and parallel download subsequent requests.

However parallel download subsequent requests may not necessarily use
If-Range header.

This CL adds a parameter to control if If-Range is sent in the request.

Also refactored the code to attach partial request headers.

BUG= 706181 , 644352

Review-Url: https://codereview.chromium.org/2786523002
Cr-Commit-Position: refs/heads/master@{#460930}

[modify] https://crrev.com/b791e0b97910713700bf8e4f3396521cff290d3b/content/browser/download/download_request_core.cc
[modify] https://crrev.com/b791e0b97910713700bf8e4f3396521cff290d3b/content/browser/download/download_request_core.h
[modify] https://crrev.com/b791e0b97910713700bf8e4f3396521cff290d3b/content/browser/download/download_request_core_unittest.cc
[modify] https://crrev.com/b791e0b97910713700bf8e4f3396521cff290d3b/content/browser/download/download_worker.cc
[modify] https://crrev.com/b791e0b97910713700bf8e4f3396521cff290d3b/content/browser/download/parallel_download_job.cc
[modify] https://crrev.com/b791e0b97910713700bf8e4f3396521cff290d3b/content/public/browser/download_url_parameters.cc
[modify] https://crrev.com/b791e0b97910713700bf8e4f3396521cff290d3b/content/public/browser/download_url_parameters.h

Status: Fixed (was: Started)

Sign in to add a comment