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, |