| Index: content/browser/service_worker/service_worker_url_request_job.h
|
| diff --git a/content/browser/service_worker/service_worker_url_request_job.h b/content/browser/service_worker/service_worker_url_request_job.h
|
| index 1c164e50e30aeb3438adacc12d0179d3fd7c7e13..b311e0bec026bad77d74614a8d9c2bc59f12a21f 100644
|
| --- a/content/browser/service_worker/service_worker_url_request_job.h
|
| +++ b/content/browser/service_worker/service_worker_url_request_job.h
|
| @@ -27,6 +27,7 @@
|
| #include "net/url_request/url_request.h"
|
| #include "net/url_request/url_request_job.h"
|
| #include "net/url_request/url_request_status.h"
|
| +#include "storage/common/blob_storage/blob_storage_constants.h"
|
| #include "third_party/WebKit/public/platform/modules/serviceworker/WebServiceWorkerResponseType.h"
|
| #include "url/gurl.h"
|
|
|
| @@ -149,6 +150,8 @@ class CONTENT_EXPORT ServiceWorkerURLRequestJob
|
| base::WeakPtr<ServiceWorkerURLRequestJob> GetWeakPtr();
|
|
|
| private:
|
| + class BlobConstructionWaiter;
|
| +
|
| enum ResponseType {
|
| NOT_DETERMINED,
|
| FALLBACK_TO_NETWORK,
|
| @@ -172,7 +175,8 @@ class CONTENT_EXPORT ServiceWorkerURLRequestJob
|
| // Creates BlobDataHandle of the request body from |body_|. This handle
|
| // |request_body_blob_data_handle_| will be deleted when
|
| // ServiceWorkerURLRequestJob is deleted.
|
| - bool CreateRequestBodyBlob(std::string* blob_uuid, uint64_t* blob_size);
|
| + // This must not be called until all blobs in |body_| finished construction.
|
| + void CreateRequestBodyBlob(std::string* blob_uuid, uint64_t* blob_size);
|
|
|
| // For FORWARD_TO_SERVICE_WORKER case.
|
| void DidPrepareFetchEvent();
|
| @@ -217,6 +221,10 @@ class CONTENT_EXPORT ServiceWorkerURLRequestJob
|
|
|
| bool IsMainResourceLoad() const;
|
|
|
| + // For waiting for request body blobs to finish construction.
|
| + bool HasRequestBody();
|
| + void RequestBodyBlobsCompleted(bool success);
|
| +
|
| // Not owned.
|
| Delegate* delegate_;
|
|
|
| @@ -268,6 +276,8 @@ class CONTENT_EXPORT ServiceWorkerURLRequestJob
|
| bool response_is_in_cache_storage_ = false;
|
| std::string response_cache_storage_cache_name_;
|
|
|
| + std::unique_ptr<BlobConstructionWaiter> blob_construction_waiter_;
|
| +
|
| base::WeakPtrFactory<ServiceWorkerURLRequestJob> weak_factory_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(ServiceWorkerURLRequestJob);
|
|
|