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

Unified Diff: content/browser/service_worker/service_worker_fetch_dispatcher.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_fetch_dispatcher.cc
diff --git a/content/browser/service_worker/service_worker_fetch_dispatcher.cc b/content/browser/service_worker/service_worker_fetch_dispatcher.cc
index 81be9aff2a7e3624b83af03071295210428b67af..dd33f40d45ea6bba6d38c55d98cc4235f53f344f 100644
--- a/content/browser/service_worker/service_worker_fetch_dispatcher.cc
+++ b/content/browser/service_worker/service_worker_fetch_dispatcher.cc
@@ -7,21 +7,20 @@
#include "base/bind.h"
#include "content/browser/service_worker/service_worker_version.h"
#include "net/url_request/url_request.h"
+#include "webkit/browser/blob/blob_storage_context.h"
namespace content {
ServiceWorkerFetchDispatcher::ServiceWorkerFetchDispatcher(
- net::URLRequest* request,
+ const ServiceWorkerFetchRequest& request,
ServiceWorkerVersion* version,
+ base::WeakPtr<webkit_blob::BlobStorageContext> blob_storage_context,
const FetchCallback& callback)
: version_(version),
callback_(callback),
+ request_(request),
+ blob_storage_context_(blob_storage_context),
weak_factory_(this) {
- request_.url = request->url();
- request_.method = request->method();
- const net::HttpRequestHeaders& headers = request->extra_request_headers();
- for (net::HttpRequestHeaders::Iterator it(headers); it.GetNext();)
- request_.headers[it.name()] = it.value();
}
ServiceWorkerFetchDispatcher::~ServiceWorkerFetchDispatcher() {}
@@ -72,7 +71,12 @@ void ServiceWorkerFetchDispatcher::DidFinish(
const ServiceWorkerResponse& response) {
DCHECK(!callback_.is_null());
FetchCallback callback = callback_;
- callback.Run(status, fetch_result, response);
+ scoped_ptr<webkit_blob::BlobDataHandle> blob_data_handle;
+ if (!response.blob_uuid.empty() && blob_storage_context_) {
+ blob_data_handle =
+ blob_storage_context_->GetBlobDataFromUUID(response.blob_uuid);
+ }
+ callback.Run(status, fetch_result, response, blob_data_handle.Pass());
}
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698