Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(12)

Unified Diff: content/browser/service_worker/service_worker_url_request_job.cc

Issue 517543002: [ServiceWorker] Set blob_size of ServiceWorkerFetchRequest as kuint64max when it is unknown. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add blank lines Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..92d43af2c56ee9c323f80a160505035c5ec59610 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,7 @@ bool ServiceWorkerURLRequestJob::CreateRequestBodyBlob(std::string* blob_uuid,
uint64* blob_size) {
if (!body_.get() || !blob_storage_context_)
return false;
- 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 +286,16 @@ bool ServiceWorkerURLRequestJob::CreateRequestBodyBlob(std::string* blob_uuid,
resolved_elements.push_back(&item);
}
}
+
+ 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 +324,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;
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698