Chromium Code Reviews| Index: content/browser/service_worker/service_worker_url_request_job.cc |
| diff --git a/content/browser/service_worker/service_worker_url_request_job.cc b/content/browser/service_worker/service_worker_url_request_job.cc |
| index aa1cf1ffff75baa73649d11c78f81ef36dfad55e..6c7714479e9db57c69f00bb615db59c6da73f033 100644 |
| --- a/content/browser/service_worker/service_worker_url_request_job.cc |
| +++ b/content/browser/service_worker/service_worker_url_request_job.cc |
| @@ -268,8 +268,6 @@ bool ServiceWorkerURLRequestJob::CreateRequestBodyBlob(std::string* blob_uuid, |
| uint64* blob_size) { |
| if (!body_.get() || !blob_storage_context_) |
| return false; |
|
michaeln
2014/08/28 22:46:34
nit: maybe a blank line here
horo
2014/08/29 01:13:04
Done.
|
| - const std::string uuid(base::GenerateGUID()); |
| - uint64 size = 0; |
| std::vector<const ResourceRequestBody::Element*> resolved_elements; |
| for (size_t i = 0; i < body_->elements()->size(); ++i) { |
| const ResourceRequestBody::Element& element = (*body_->elements())[i]; |
| @@ -287,10 +285,15 @@ bool ServiceWorkerURLRequestJob::CreateRequestBodyBlob(std::string* blob_uuid, |
| resolved_elements.push_back(&item); |
| } |
| } |
|
michaeln
2014/08/28 22:46:34
nit: and here
horo
2014/08/29 01:13:04
Done.
|
| + const std::string uuid(base::GenerateGUID()); |
| + uint64 total_size = 0; |
| scoped_refptr<storage::BlobData> blob_data = new storage::BlobData(uuid); |
| for (size_t i = 0; i < resolved_elements.size(); ++i) { |
| const ResourceRequestBody::Element& element = *resolved_elements[i]; |
| - size += element.length(); |
| + if (total_size != kuint64max && element.length() != kuint64max) |
| + total_size += element.length(); |
| + else |
| + total_size = kuint64max; |
| switch (element.type()) { |
| case ResourceRequestBody::Element::TYPE_BYTES: |
| blob_data->AppendData(element.bytes(), element.length()); |
| @@ -319,7 +322,7 @@ bool ServiceWorkerURLRequestJob::CreateRequestBodyBlob(std::string* blob_uuid, |
| request_body_blob_data_handle_ = |
| blob_storage_context_->AddFinishedBlob(blob_data.get()); |
| *blob_uuid = uuid; |
| - *blob_size = size; |
| + *blob_size = total_size; |
| return true; |
| } |