Chromium Code Reviews| Index: media/blink/resource_multibuffer_data_provider.cc |
| diff --git a/media/blink/resource_multibuffer_data_provider.cc b/media/blink/resource_multibuffer_data_provider.cc |
| index 0c5c7187ddfa313b3cec88fd9cde9f8521617fca..f044155c9569d80d754e0a253dc256e12dcf91ad 100644 |
| --- a/media/blink/resource_multibuffer_data_provider.cc |
| +++ b/media/blink/resource_multibuffer_data_provider.cc |
| @@ -35,6 +35,9 @@ namespace media { |
| // The number of milliseconds to wait before retrying a failed load. |
| const int kLoaderFailedRetryDelayMs = 250; |
| +// Each retry, add this many MS to the delay. |
| +const int kAdditionalDelayPerRetryMs = 50; |
| + |
| // The number of milliseconds to wait before retrying when the server |
| // decides to not give us all the data at once. |
| const int kLoaderPartialRetryDelayMs = 25; |
| @@ -42,7 +45,10 @@ const int kLoaderPartialRetryDelayMs = 25; |
| const int kHttpOK = 200; |
| const int kHttpPartialContent = 206; |
| const int kHttpRangeNotSatisfiable = 416; |
| -const int kMaxRetries = 3; |
| +// total delay is: |
| +// (kLoaderPartialRetryDelayMs + |
| +// kAdditionalDelayPerRetryMs * (kMaxRetries - 1) / 2) * kMaxretries = 29250 ms |
| +const int kMaxRetries = 30; |
| ResourceMultiBufferDataProvider::ResourceMultiBufferDataProvider( |
| UrlData* url_data, |
| @@ -411,7 +417,8 @@ void ResourceMultiBufferDataProvider::didFail(WebURLLoader* loader, |
| base::MessageLoop::current()->PostDelayedTask( |
| FROM_HERE, base::Bind(&ResourceMultiBufferDataProvider::Start, |
| weak_factory_.GetWeakPtr()), |
| - base::TimeDelta::FromMilliseconds(kLoaderFailedRetryDelayMs)); |
| + base::TimeDelta::FromMilliseconds( |
| + kLoaderFailedRetryDelayMs + kAdditionalDelayPerRetryMs * retries_)); |
|
DaleCurtis
2016/03/10 01:23:32
IIRC we reuse the BufferedDataSource unittest for
hubbe
2016/03/11 03:18:53
No, we do not.
Also, the tests we have weren't rea
|
| } else { |
| // We don't need to continue loading after failure. |
| // |