Chromium Blob hacking
commit2660ea75a0463e0b799328699022903e35e4277e
authormichaeln@chromium.org <michaeln@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Sun, 1 Sep 2013 23:06:03 +0000 (1 23:06 +0000)
committermichaeln@chromium.org <michaeln@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Sun, 1 Sep 2013 23:06:03 +0000 (1 23:06 +0000)
tree61c549f31ea4874a125811af854b714a9a314e59
parent88b50b690f0d8a401c26a04c359b92f35c673bc2
Chromium Blob hacking

Start using BlobStorageContext (and family) as a replacement for BlobStorageController. The new class manages blob data by uuid and seperately maintains a mapping from of public blob urls to uuids.

Added a methods to create an additional mapping of old-style 'private urls' to new-style uuids to help with transitioning, blink needs to be retrofitted too, but that has to happen separately.

Changed blob processing classes to take BlobDataHandles as input instead of GURLs. Not long after IPC deserizliation, get a BlobDataHandle and pass that around.
- FileSystemOperation.Write (and famlity) for FileWriter support
- ResourceDispatcherHost (and famility) for blob url requests
- (PostMessage handling and WebIntent plumbing ultimately needs to be treated in this way too)

Switched to using string uuids instead of urls in IPC messages (and structs carried in ipc messages).
Until blink is retrofitted, the chromiums side supports both forms of identifying blobs (old-style private urls and new-style uuids).
- FileSystemHostMsg_Write
- webkit_base::DataElement (and consumers: BlobData, ResourceRequestBody)
- blob registry/building ipc messages

Implemented the WebKit::WebBlobRegistryImpl such that it can be invoked on any renderer/worker thread.

Got more explicit about naming: FileSystemURL vs BlobUUID vs PublicBlobURL.

Note: There are corresponding changes to be made in Blink, after which, the things annotated as deprecated in this CL can be removed.

TBR=inferno
BUG=174200

Review URL: https://chromiumcodereview.appspot.com/23223003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@220754 0039d316-1c4b-4281-b951-d872f2087c98
60 files changed:
chrome/browser/sync_file_system/local/canned_syncable_file_system.cc
chrome/browser/sync_file_system/local/canned_syncable_file_system.h
chrome/browser/sync_file_system/local/local_file_change_tracker_unittest.cc
chrome/browser/sync_file_system/local/syncable_file_operation_runner_unittest.cc
content/browser/fileapi/chrome_blob_storage_context.cc
content/browser/fileapi/chrome_blob_storage_context.h
content/browser/fileapi/fileapi_message_filter.cc
content/browser/fileapi/fileapi_message_filter.h
content/browser/fileapi/fileapi_message_filter_unittest.cc
content/browser/loader/resource_dispatcher_host_impl.cc
content/browser/loader/resource_request_info_impl.cc
content/browser/loader/resource_request_info_impl.h
content/browser/loader/upload_data_stream_builder.cc
content/browser/loader/upload_data_stream_builder.h
content/browser/loader/upload_data_stream_builder_unittest.cc
content/browser/net/view_blob_internals_job_factory.cc
content/browser/net/view_blob_internals_job_factory.h
content/browser/storage_partition_impl_map.cc
content/browser/webui/url_data_manager_backend.cc
content/child/fileapi/file_system_dispatcher.cc
content/child/fileapi/file_system_dispatcher.h
content/child/fileapi/webfilewriter_base.cc
content/child/fileapi/webfilewriter_base.h
content/child/fileapi/webfilewriter_base_unittest.cc
content/child/fileapi/webfilewriter_impl.cc
content/child/fileapi/webfilewriter_impl.h
content/child/webblobregistry_impl.cc
content/child/webblobregistry_impl.h
content/common/fileapi/file_system_messages.h
content/common/fileapi/webblob_messages.h
content/common/page_state_serialization.cc
content/common/page_state_serialization.h
content/common/page_state_serialization_unittest.cc
content/common/resource_messages.cc
content/content_tests.gypi
content/public/renderer/history_item_serialization.cc
webkit/browser/blob/blob_data_handle.h
webkit/browser/blob/blob_storage_context.cc
webkit/browser/blob/blob_storage_context.h
webkit/browser/blob/blob_storage_context_unittest.cc
webkit/browser/blob/blob_storage_controller.cc [deleted file]
webkit/browser/blob/blob_storage_controller.h [deleted file]
webkit/browser/blob/blob_storage_controller_unittest.cc [deleted file]
webkit/browser/blob/blob_storage_host.cc
webkit/browser/blob/blob_storage_host.h
webkit/browser/blob/blob_url_request_job.cc
webkit/browser/blob/blob_url_request_job_factory.cc
webkit/browser/blob/blob_url_request_job_factory.h
webkit/browser/blob/mock_blob_url_request_context.cc
webkit/browser/blob/mock_blob_url_request_context.h
webkit/browser/blob/view_blob_internals_job.cc
webkit/browser/blob/view_blob_internals_job.h
webkit/browser/fileapi/file_system_operation_impl_write_unittest.cc
webkit/browser/fileapi/file_system_operation_runner.cc
webkit/browser/fileapi/file_system_operation_runner.h
webkit/child/weburlloader_impl.cc
webkit/common/data_element.h
webkit/common/resource_request_body.cc
webkit/common/resource_request_body.h
webkit/storage_browser.gyp