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

Unified Diff: storage/browser/blob/blob_url_request_job_factory.cc

Issue 1376123002: Revert of [Blob] BlobReader class & tests, and removal of all redundant reading. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 3 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: storage/browser/blob/blob_url_request_job_factory.cc
diff --git a/storage/browser/blob/blob_url_request_job_factory.cc b/storage/browser/blob/blob_url_request_job_factory.cc
index 5961697873d556014b47624a69127843fcebe1e7..feb5df0855ca50dad00c039a049f28b3b9632f84 100644
--- a/storage/browser/blob/blob_url_request_job_factory.cc
+++ b/storage/browser/blob/blob_url_request_job_factory.cc
@@ -18,6 +18,10 @@
namespace {
int kUserDataKey; // The value is not important, the addr is a key.
+
+BlobDataHandle* GetRequestedBlobDataHandle(net::URLRequest* request) {
+ return static_cast<BlobDataHandle*>(request->GetUserData(&kUserDataKey));
+}
} // namespace
@@ -40,12 +44,6 @@
request->SetUserData(&kUserDataKey, blob_data_handle.release());
}
-// static
-BlobDataHandle* BlobProtocolHandler::GetRequestBlobDataHandle(
- net::URLRequest* request) {
- return static_cast<BlobDataHandle*>(request->GetUserData(&kUserDataKey));
-}
-
BlobProtocolHandler::BlobProtocolHandler(
BlobStorageContext* context,
storage::FileSystemContext* file_system_context,
@@ -61,16 +59,18 @@
net::URLRequestJob* BlobProtocolHandler::MaybeCreateJob(
net::URLRequest* request, net::NetworkDelegate* network_delegate) const {
- return new storage::BlobURLRequestJob(
- request, network_delegate, LookupBlobHandle(request),
- file_system_context_.get(), file_task_runner_.get());
+ return new storage::BlobURLRequestJob(request,
+ network_delegate,
+ LookupBlobData(request),
+ file_system_context_.get(),
+ file_task_runner_.get());
}
-BlobDataHandle* BlobProtocolHandler::LookupBlobHandle(
+scoped_ptr<BlobDataSnapshot> BlobProtocolHandler::LookupBlobData(
net::URLRequest* request) const {
- BlobDataHandle* blob_data_handle = GetRequestBlobDataHandle(request);
+ BlobDataHandle* blob_data_handle = GetRequestedBlobDataHandle(request);
if (blob_data_handle)
- return blob_data_handle;
+ return blob_data_handle->CreateSnapshot().Pass();
if (!context_.get())
return NULL;
@@ -83,11 +83,12 @@
return NULL;
std::string uuid = request->url().spec().substr(kPrefix.length());
scoped_ptr<BlobDataHandle> handle = context_->GetBlobDataFromUUID(uuid);
- BlobDataHandle* handle_ptr = handle.get();
+ scoped_ptr<BlobDataSnapshot> snapshot;
if (handle) {
+ snapshot = handle->CreateSnapshot().Pass();
SetRequestedBlobDataHandle(request, handle.Pass());
}
- return handle_ptr;
+ return snapshot.Pass();
}
} // namespace storage
« no previous file with comments | « storage/browser/blob/blob_url_request_job_factory.h ('k') | storage/browser/blob/upload_blob_element_reader.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698