| Index: storage/browser/blob/blob_memory_controller.cc | 
| diff --git a/storage/browser/blob/blob_memory_controller.cc b/storage/browser/blob/blob_memory_controller.cc | 
| index 6cc6c3f291f72005a32f017737a24984faece169..f4a002fce198709621fa48b9224837b755bd62ac 100644 | 
| --- a/storage/browser/blob/blob_memory_controller.cc | 
| +++ b/storage/browser/blob/blob_memory_controller.cc | 
| @@ -5,6 +5,7 @@ | 
| #include "storage/browser/blob/blob_memory_controller.h" | 
|  | 
| #include <algorithm> | 
| +#include <numeric> | 
|  | 
| #include "base/callback.h" | 
| #include "base/callback_helpers.h" | 
| @@ -45,6 +46,8 @@ File::Error CreateBlobDirectory(const FilePath& blob_storage_dir) { | 
| base::CreateDirectoryAndGetError(blob_storage_dir, &error); | 
| UMA_HISTOGRAM_ENUMERATION("Storage.Blob.CreateDirectoryResult", -error, | 
| -File::FILE_ERROR_MAX); | 
| +  DLOG_IF(ERROR, error != File::FILE_OK) | 
| +      << "Error creating blob storage directory: " << error; | 
| return error; | 
| } | 
|  | 
| @@ -74,15 +77,6 @@ std::pair<std::vector<FileCreationInfo>, File::Error> CreateEmptyFiles( | 
| return std::make_pair(std::vector<FileCreationInfo>(), | 
| creation_info.error); | 
| } | 
| - | 
| -    // Grab the file info to get the "last modified" time and store the file. | 
| -    File::Info file_info; | 
| -    bool success = file.GetInfo(&file_info); | 
| -    creation_info.error = success ? File::FILE_OK : File::FILE_ERROR_FAILED; | 
| -    if (!success) { | 
| -      return std::make_pair(std::vector<FileCreationInfo>(), | 
| -                            creation_info.error); | 
| -    } | 
| creation_info.file = std::move(file); | 
|  | 
| result.push_back(std::move(creation_info)); | 
| @@ -134,6 +128,10 @@ FileCreationInfo CreateFileAndWriteItems( | 
| if (bytes_written < 0) | 
| break; | 
| } | 
| +  if (!file.Flush()) { | 
| +    creation_info.error = File::FILE_ERROR_FAILED; | 
| +    return creation_info; | 
| +  } | 
|  | 
| File::Info info; | 
| bool success = file.GetInfo(&info); | 
| @@ -162,6 +160,10 @@ uint64_t GetTotalSizeAndFileSizes( | 
| for (const auto& size_pair : file_id_to_sizes) { | 
| file_sizes_output->push_back(size_pair.second); | 
| } | 
| +  DCHECK_EQ(std::accumulate(file_sizes_output->begin(), | 
| +                            file_sizes_output->end(), 0ull), | 
| +            total_size_output) | 
| +      << "Illegal builder configuration, temporary files must be totally used."; | 
| return total_size_output; | 
| } | 
|  | 
| @@ -298,7 +300,7 @@ class BlobMemoryController::FileQuotaAllocationTask | 
| } | 
| ~FileQuotaAllocationTask() override {} | 
|  | 
| -  void RunDoneCallback(bool success, std::vector<FileCreationInfo> file_info) { | 
| +  void RunDoneCallback(std::vector<FileCreationInfo> file_info, bool success) { | 
| // Make sure we clear the weak pointers we gave to the caller beforehand. | 
| weak_factory_.InvalidateWeakPtrs(); | 
|  | 
| @@ -313,7 +315,7 @@ class BlobMemoryController::FileQuotaAllocationTask | 
| controller_->pending_file_quota_tasks_.erase(my_list_position_); | 
| } | 
|  | 
| -    done_callback_.Run(success, std::move(file_info)); | 
| +    done_callback_.Run(std::move(file_info), success); | 
| } | 
|  | 
| base::WeakPtr<QuotaAllocationTask> GetWeakPtr() { | 
| @@ -341,7 +343,7 @@ class BlobMemoryController::FileQuotaAllocationTask | 
| for (size_t i = 0; i < files.size(); i++) { | 
| files[i].file_reference = std::move(references[i]); | 
| } | 
| -    RunDoneCallback(true, std::move(files)); | 
| +    RunDoneCallback(std::move(files), true); | 
| } | 
|  | 
| // The my_list_position_ iterator is stored so that we can remove ourself | 
| @@ -379,6 +381,7 @@ BlobMemoryController::~BlobMemoryController() {} | 
| void BlobMemoryController::DisableFilePaging(base::File::Error reason) { | 
| UMA_HISTOGRAM_ENUMERATION("Storage.Blob.PagingDisabled", -reason, | 
| -File::FILE_ERROR_MAX); | 
| +  DLOG(ERROR) << "Blob storage paging disabled, reason: " << reason; | 
| file_paging_enabled_ = false; | 
| in_flight_memory_used_ = 0; | 
| items_paging_to_file_.clear(); | 
| @@ -398,7 +401,7 @@ void BlobMemoryController::DisableFilePaging(base::File::Error reason) { | 
| memory_request->RunDoneCallback(false); | 
| } | 
| for (auto& file_request : old_file_tasks) { | 
| -    file_request->RunDoneCallback(false, std::vector<FileCreationInfo>()); | 
| +    file_request->RunDoneCallback(std::vector<FileCreationInfo>(), false); | 
| } | 
| } | 
|  | 
|  |