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

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

Issue 320553003: blob bug wip Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 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
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();

Powered by Google App Engine
This is Rietveld 408576698