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

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

Issue 1846363002: [BlobAsync] Adding better error reporting and some new tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: comments Created 4 years, 8 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
« no previous file with comments | « storage/browser/blob/blob_reader.h ('k') | storage/browser/blob/blob_storage_context.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: storage/browser/blob/blob_reader.cc
diff --git a/storage/browser/blob/blob_reader.cc b/storage/browser/blob/blob_reader.cc
index 9ac92c0fbad19a86ebffbfeb40fbc90eba6239f2..3e8ade6a57fddbd98ab1619f81af0c2e22af3440 100644
--- a/storage/browser/blob/blob_reader.cc
+++ b/storage/browser/blob/blob_reader.cc
@@ -39,6 +39,25 @@ bool IsFileType(DataElement::Type type) {
return false;
}
}
+
+int ConvertBlobErrorToNetError(IPCBlobCreationCancelCode reason) {
+ switch (reason) {
+ case IPCBlobCreationCancelCode::UNKNOWN:
+ return net::ERR_FAILED;
+ case IPCBlobCreationCancelCode::OUT_OF_MEMORY:
+ return net::ERR_OUT_OF_MEMORY;
+ case IPCBlobCreationCancelCode::FILE_WRITE_FAILED:
+ return net::ERR_FILE_NO_SPACE;
+ case IPCBlobCreationCancelCode::SOURCE_DIED_IN_TRANSIT:
+ return net::ERR_UNEXPECTED;
+ case IPCBlobCreationCancelCode::BLOB_DEREFERENCED_WHILE_BUILDING:
+ return net::ERR_UNEXPECTED;
+ case IPCBlobCreationCancelCode::REFERENCED_BLOB_BROKEN:
+ return net::ERR_INVALID_HANDLE;
+ }
+ NOTREACHED();
+ return net::ERR_FAILED;
+}
} // namespace
BlobReader::FileStreamReaderProvider::~FileStreamReaderProvider() {}
@@ -185,9 +204,10 @@ BlobReader::Status BlobReader::ReportError(int net_error) {
}
void BlobReader::AsyncCalculateSize(const net::CompletionCallback& done,
- bool async_succeeded) {
+ bool async_succeeded,
+ IPCBlobCreationCancelCode reason) {
if (!async_succeeded) {
- InvalidateCallbacksAndDone(net::ERR_FAILED, done);
+ InvalidateCallbacksAndDone(ConvertBlobErrorToNetError(reason), done);
return;
}
DCHECK(!blob_handle_->IsBroken()) << "Callback should have returned false.";
« no previous file with comments | « storage/browser/blob/blob_reader.h ('k') | storage/browser/blob/blob_storage_context.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698