Chromium Code Reviews| Index: storage/browser/blob/blob_storage_context.cc |
| diff --git a/storage/browser/blob/blob_storage_context.cc b/storage/browser/blob/blob_storage_context.cc |
| index 66f67ea1d2f54726fe8510e65c0997eba2279e69..d4c6e282e0e19c37a4306fe215ab0c65860e0f23 100644 |
| --- a/storage/browser/blob/blob_storage_context.cc |
| +++ b/storage/browser/blob/blob_storage_context.cc |
| @@ -16,6 +16,7 @@ |
| #include "base/thread_task_runner_handle.h" |
| #include "base/trace_event/trace_event.h" |
| #include "storage/browser/blob/blob_data_builder.h" |
| +#include "storage/browser/blob/shareable_file_reference.h" |
| #include "url/gurl.h" |
| namespace storage { |
| @@ -283,6 +284,9 @@ scoped_refptr<BlobDataItem> BlobStorageContext::AllocateBlobItem( |
| ipc_data.length()); |
| blob_item = new BlobDataItem(element.Pass()); |
| break; |
| + case DataElement::TYPE_DISK_CACHE_ENTRY: // This type can't be sent by IPC. |
| + NOTREACHED(); |
| + break; |
| default: |
| NOTREACHED(); |
| break; |
| @@ -365,6 +369,13 @@ bool BlobStorageContext::AppendAllocatedBlobItem( |
| } |
| break; |
| } |
| + case DataElement::TYPE_DISK_CACHE_ENTRY: { |
| + UMA_HISTOGRAM_COUNTS("Storage.BlobItemSize.CacheEntry", |
| + (length - offset) / 1024); |
| + target_blob_builder->AppendSharedBlobItem( |
| + new ShareableBlobDataItem(target_blob_uuid, blob_item)); |
| + break; |
| + } |
| default: |
| NOTREACHED(); |
| break; |
| @@ -440,7 +451,7 @@ bool BlobStorageContext::AppendBlob( |
| item.expected_modification_time()); |
| target_blob_builder->AppendSharedBlobItem(new ShareableBlobDataItem( |
| target_blob_uuid, |
| - new BlobDataItem(element.Pass(), item.file_handle_))); |
| + new BlobDataItem(element.Pass(), item.data_handle_))); |
| } break; |
| case DataElement::TYPE_FILE_FILESYSTEM: { |
| UMA_HISTOGRAM_COUNTS("Storage.BlobItemSize.BlobSlice.FileSystem", |
| @@ -452,6 +463,16 @@ bool BlobStorageContext::AppendBlob( |
| target_blob_builder->AppendSharedBlobItem(new ShareableBlobDataItem( |
| target_blob_uuid, new BlobDataItem(element.Pass()))); |
| } break; |
| + case DataElement::TYPE_DISK_CACHE_ENTRY: { |
| + scoped_ptr<DataElement> element(new DataElement()); |
| + element->SetToDiskCacheEntryRange(item.length() + offset, |
|
michaeln
2015/06/12 23:43:06
should this be item.offset() + offset ?
gavinp
2015/06/15 14:01:19
Done.
|
| + new_length); |
| + target_blob_builder->AppendSharedBlobItem(new ShareableBlobDataItem( |
| + target_blob_uuid, |
| + new BlobDataItem(element.Pass(), item.data_handle_, |
| + item.disk_cache_entry(), |
| + item.disk_cache_stream_index()))); |
| + } break; |
| default: |
| CHECK(false) << "Illegal blob item type: " << item.type(); |
| } |