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

Side by Side 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/service_worker/service_worker_fetch_dispatcher.h" 5 #include "content/browser/service_worker/service_worker_fetch_dispatcher.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "content/browser/service_worker/service_worker_version.h" 8 #include "content/browser/service_worker/service_worker_version.h"
9 #include "net/url_request/url_request.h" 9 #include "net/url_request/url_request.h"
10 #include "webkit/browser/blob/blob_storage_context.h"
10 11
11 namespace content { 12 namespace content {
12 13
13 ServiceWorkerFetchDispatcher::ServiceWorkerFetchDispatcher( 14 ServiceWorkerFetchDispatcher::ServiceWorkerFetchDispatcher(
14 net::URLRequest* request, 15 const ServiceWorkerFetchRequest& request,
15 ServiceWorkerVersion* version, 16 ServiceWorkerVersion* version,
17 base::WeakPtr<webkit_blob::BlobStorageContext> blob_storage_context,
16 const FetchCallback& callback) 18 const FetchCallback& callback)
17 : version_(version), 19 : version_(version),
18 callback_(callback), 20 callback_(callback),
21 request_(request),
22 blob_storage_context_(blob_storage_context),
19 weak_factory_(this) { 23 weak_factory_(this) {
20 request_.url = request->url();
21 request_.method = request->method();
22 const net::HttpRequestHeaders& headers = request->extra_request_headers();
23 for (net::HttpRequestHeaders::Iterator it(headers); it.GetNext();)
24 request_.headers[it.name()] = it.value();
25 } 24 }
26 25
27 ServiceWorkerFetchDispatcher::~ServiceWorkerFetchDispatcher() {} 26 ServiceWorkerFetchDispatcher::~ServiceWorkerFetchDispatcher() {}
28 27
29 void ServiceWorkerFetchDispatcher::Run() { 28 void ServiceWorkerFetchDispatcher::Run() {
30 DCHECK(version_->status() == ServiceWorkerVersion::ACTIVATING || 29 DCHECK(version_->status() == ServiceWorkerVersion::ACTIVATING ||
31 version_->status() == ServiceWorkerVersion::ACTIVE) 30 version_->status() == ServiceWorkerVersion::ACTIVE)
32 << version_->status(); 31 << version_->status();
33 32
34 if (version_->status() == ServiceWorkerVersion::ACTIVATING) { 33 if (version_->status() == ServiceWorkerVersion::ACTIVATING) {
(...skipping 30 matching lines...) Expand all
65 base::Bind(&ServiceWorkerFetchDispatcher::DidFinish, 64 base::Bind(&ServiceWorkerFetchDispatcher::DidFinish,
66 weak_factory_.GetWeakPtr())); 65 weak_factory_.GetWeakPtr()));
67 } 66 }
68 67
69 void ServiceWorkerFetchDispatcher::DidFinish( 68 void ServiceWorkerFetchDispatcher::DidFinish(
70 ServiceWorkerStatusCode status, 69 ServiceWorkerStatusCode status,
71 ServiceWorkerFetchEventResult fetch_result, 70 ServiceWorkerFetchEventResult fetch_result,
72 const ServiceWorkerResponse& response) { 71 const ServiceWorkerResponse& response) {
73 DCHECK(!callback_.is_null()); 72 DCHECK(!callback_.is_null());
74 FetchCallback callback = callback_; 73 FetchCallback callback = callback_;
75 callback.Run(status, fetch_result, response); 74 scoped_ptr<webkit_blob::BlobDataHandle> blob_data_handle;
75 if (!response.blob_uuid.empty() && blob_storage_context_) {
76 blob_data_handle =
77 blob_storage_context_->GetBlobDataFromUUID(response.blob_uuid);
78 }
79 callback.Run(status, fetch_result, response, blob_data_handle.Pass());
76 } 80 }
77 81
78 } // namespace content 82 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698