| 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 b48b8d96a6ecce970fc57d6d0931b13f8f5c0422..8bcb4eaaa274eff715ddb0e02f6eb3d7f9bf67a8 100644
|
| --- a/content/browser/service_worker/service_worker_url_request_job.cc
|
| +++ b/content/browser/service_worker/service_worker_url_request_job.cc
|
| @@ -18,6 +18,21 @@
|
|
|
| namespace content {
|
|
|
| +namespace {
|
| +
|
| +ServiceWorkerFetchRequest URLRequestToFetchRequest(
|
| + net::URLRequest* url_request) {
|
| + ServiceWorkerFetchRequest fetch_request;
|
| + fetch_request.url = url_request->url();
|
| + fetch_request.method = url_request->method();
|
| + const net::HttpRequestHeaders& headers = url_request->extra_request_headers();
|
| + for (net::HttpRequestHeaders::Iterator it(headers); it.GetNext();)
|
| + fetch_request.headers[it.name()] = it.value();
|
| + return fetch_request;
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| ServiceWorkerURLRequestJob::ServiceWorkerURLRequestJob(
|
| net::URLRequest* request,
|
| net::NetworkDelegate* network_delegate,
|
| @@ -201,7 +216,9 @@ void ServiceWorkerURLRequestJob::StartRequest() {
|
| // Send a fetch event to the ServiceWorker associated to the
|
| // provider_host.
|
| fetch_dispatcher_.reset(new ServiceWorkerFetchDispatcher(
|
| - request(), provider_host_->active_version(),
|
| + URLRequestToFetchRequest(request()),
|
| + provider_host_->active_version(),
|
| + blob_storage_context_,
|
| base::Bind(&ServiceWorkerURLRequestJob::DidDispatchFetchEvent,
|
| weak_factory_.GetWeakPtr())));
|
| fetch_dispatcher_->Run();
|
| @@ -214,7 +231,8 @@ void ServiceWorkerURLRequestJob::StartRequest() {
|
| void ServiceWorkerURLRequestJob::DidDispatchFetchEvent(
|
| ServiceWorkerStatusCode status,
|
| ServiceWorkerFetchEventResult fetch_result,
|
| - const ServiceWorkerResponse& response) {
|
| + const ServiceWorkerResponse& response,
|
| + scoped_ptr<webkit_blob::BlobDataHandle> blob_data_handle) {
|
| fetch_dispatcher_.reset();
|
|
|
| // Check if we're not orphaned.
|
| @@ -245,8 +263,6 @@ void ServiceWorkerURLRequestJob::DidDispatchFetchEvent(
|
|
|
| // Set up a request for reading the blob.
|
| if (!response.blob_uuid.empty() && blob_storage_context_) {
|
| - scoped_ptr<webkit_blob::BlobDataHandle> blob_data_handle =
|
| - blob_storage_context_->GetBlobDataFromUUID(response.blob_uuid);
|
| if (!blob_data_handle) {
|
| // The renderer gave us a bad blob UUID.
|
| DeliverErrorResponse();
|
|
|