| Index: storage/browser/blob/view_blob_internals_job.cc
|
| diff --git a/storage/browser/blob/view_blob_internals_job.cc b/storage/browser/blob/view_blob_internals_job.cc
|
| index 095376b30e2314606e1fe33feeccdbd0bb5e8b03..9d4862adf1f8c92cde39e856cc5beb76330bfcec 100644
|
| --- a/storage/browser/blob/view_blob_internals_job.cc
|
| +++ b/storage/browser/blob/view_blob_internals_job.cc
|
| @@ -29,8 +29,10 @@
|
| #include "storage/browser/blob/blob_storage_context.h"
|
| #include "storage/browser/blob/blob_storage_registry.h"
|
| #include "storage/browser/blob/shareable_blob_data_item.h"
|
| +#include "storage/common/blob_storage/blob_storage_constants.h"
|
|
|
| namespace {
|
| +using storage::BlobStatus;
|
|
|
| const char kEmptyBlobStorageMessage[] = "No available blob data.";
|
| const char kContentType[] = "Content Type: ";
|
| @@ -45,6 +47,7 @@ const char kOffset[] = "Offset: ";
|
| const char kLength[] = "Length: ";
|
| const char kUUID[] = "Uuid: ";
|
| const char kRefcount[] = "Refcount: ";
|
| +const char kStatus[] = "Status: ";
|
|
|
| void StartHTML(std::string* out) {
|
| out->append(
|
| @@ -62,6 +65,41 @@ void StartHTML(std::string* out) {
|
| "</head><body>\n\n");
|
| }
|
|
|
| +std::string StatusToString(BlobStatus status) {
|
| + switch (status) {
|
| + case BlobStatus::ERR_INVALID_CONSTRUCTION_ARGUMENTS:
|
| + return "BlobStatus::ERR_INVALID_CONSTRUCTION_ARGUMENTS: Illegal blob "
|
| + "construction.";
|
| + case BlobStatus::ERR_OUT_OF_MEMORY:
|
| + return "BlobStatus::ERR_OUT_OF_MEMORY: Not enough memory or disk space "
|
| + "available for blob.";
|
| + case BlobStatus::ERR_FILE_WRITE_FAILED:
|
| + return "BlobStatus::ERR_FILE_WRITE_FAILED: File operation filed";
|
| + case BlobStatus::ERR_SOURCE_DIED_IN_TRANSIT:
|
| + return "BlobStatus::ERR_SOURCE_DIED_IN_TRANSIT: Blob source died before "
|
| + "transporting data to browser.";
|
| + case BlobStatus::ERR_BLOB_DEREFERENCED_WHILE_BUILDING:
|
| + return "BlobStatus::ERR_BLOB_DEREFERENCED_WHILE_BUILDING: Blob "
|
| + "references removed while building.";
|
| + case BlobStatus::ERR_REFERENCED_BLOB_BROKEN:
|
| + return "BlobStatus::ERR_REFERENCED_BLOB_BROKEN: Blob contains dependency "
|
| + "blob that is broken.";
|
| + case BlobStatus::DONE:
|
| + return "BlobStatus::DONE: Blob built with no errors.";
|
| + case BlobStatus::PENDING_QUOTA:
|
| + return "BlobStatus::PENDING_QUOTA: Blob construction is pending on "
|
| + "memory or file quota.";
|
| + case BlobStatus::PENDING_TRANSPORT:
|
| + return "BlobStatus::PENDING_TRANSPORT: Blob construction is pending on "
|
| + "data transport from renderer.";
|
| + case BlobStatus::PENDING_INTERNALS:
|
| + return "BlobStatus::PENDING_INTERNALS: Blob construction is pending on "
|
| + "dependency blobs to finish construction.";
|
| + }
|
| + NOTREACHED();
|
| + return "Invalid blob state.";
|
| +}
|
| +
|
| void EndHTML(std::string* out) {
|
| out->append("\n</body></html>");
|
| }
|
| @@ -181,6 +219,7 @@ void ViewBlobInternalsJob::GenerateHTMLForBlobData(
|
| StartHTMLList(out);
|
|
|
| AddHTMLListItem(kRefcount, base::IntToString(refcount), out);
|
| + AddHTMLListItem(kStatus, StatusToString(blob_data.status()), out);
|
| if (!content_type.empty())
|
| AddHTMLListItem(kContentType, content_type, out);
|
| if (!content_disposition.empty())
|
|
|