| Index: content/browser/service_worker/service_worker_read_from_cache_job.cc
|
| diff --git a/content/browser/service_worker/service_worker_read_from_cache_job.cc b/content/browser/service_worker/service_worker_read_from_cache_job.cc
|
| index aecf390039264b9f70208f4304446309c2b4bd49..3fdf94ac67a1f1f3359e955074a7c349c15ac8de 100644
|
| --- a/content/browser/service_worker/service_worker_read_from_cache_job.cc
|
| +++ b/content/browser/service_worker/service_worker_read_from_cache_job.cc
|
| @@ -123,22 +123,18 @@ void ServiceWorkerReadFromCacheJob::SetExtraRequestHeaders(
|
| range_requested_ = ranges[0];
|
| }
|
|
|
| -bool ServiceWorkerReadFromCacheJob::ReadRawData(
|
| - net::IOBuffer* buf,
|
| - int buf_size,
|
| - int *bytes_read) {
|
| +int ServiceWorkerReadFromCacheJob::ReadRawData(net::IOBuffer* buf,
|
| + int buf_size) {
|
| DCHECK_NE(buf_size, 0);
|
| - DCHECK(bytes_read);
|
| DCHECK(!reader_->IsReadPending());
|
| TRACE_EVENT_ASYNC_BEGIN1("ServiceWorker",
|
| "ServiceWorkerReadFromCacheJob::ReadRawData",
|
| this,
|
| "URL", request_->url().spec());
|
| - reader_->ReadData(
|
| - buf, buf_size, base::Bind(&ServiceWorkerReadFromCacheJob::OnReadComplete,
|
| - weak_factory_.GetWeakPtr()));
|
| - SetStatus(net::URLRequestStatus(net::URLRequestStatus::IO_PENDING, 0));
|
| - return false;
|
| + reader_->ReadData(buf, buf_size,
|
| + base::Bind(&ServiceWorkerReadFromCacheJob::OnReadComplete,
|
| + weak_factory_.GetWeakPtr()));
|
| + return net::ERR_IO_PENDING;
|
| }
|
|
|
| const net::HttpResponseInfo* ServiceWorkerReadFromCacheJob::http_info() const {
|
| @@ -209,23 +205,22 @@ void ServiceWorkerReadFromCacheJob::Done(const net::URLRequestStatus& status) {
|
| }
|
| if (is_main_script())
|
| version_->embedded_worker()->OnScriptReadFinished();
|
| - NotifyDone(status);
|
| }
|
|
|
| void ServiceWorkerReadFromCacheJob::OnReadComplete(int result) {
|
| ServiceWorkerMetrics::ReadResponseResult check_result;
|
| - if (result == 0) {
|
| +
|
| + if (result >= 0) {
|
| check_result = ServiceWorkerMetrics::READ_OK;
|
| - Done(net::URLRequestStatus());
|
| - } else if (result < 0) {
|
| + if (result == 0)
|
| + Done(net::URLRequestStatus());
|
| + } else {
|
| check_result = ServiceWorkerMetrics::READ_DATA_ERROR;
|
| Done(net::URLRequestStatus(net::URLRequestStatus::FAILED, result));
|
| - } else {
|
| - check_result = ServiceWorkerMetrics::READ_OK;
|
| - SetStatus(net::URLRequestStatus()); // Clear the IO_PENDING status
|
| }
|
| +
|
| ServiceWorkerMetrics::CountReadResponseResult(check_result);
|
| - NotifyReadComplete(result);
|
| + ReadRawDataComplete(result);
|
| TRACE_EVENT_ASYNC_END1("ServiceWorker",
|
| "ServiceWorkerReadFromCacheJob::ReadRawData",
|
| this,
|
|
|