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

Issue 11410019: ********** Chromium Blob hacking (Closed)

Created:
8 years, 1 month ago by michaeln
Modified:
7 years, 3 months ago
Reviewers:
kinuko
CC:
chromium-reviews, cbentzel+watch_chromium.org, tzik+watch_chromium.org, jam, joi+watch-content_chromium.org, darin-cc_chromium.org, kinuko+watch, Zachary Kuznia
Visibility:
Public.

Description

Chromium Blob hacking Added BlobStorageContext 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 BlobStorageConsumer class, a container for blob uuid and public url usage associated with a renderer/worker process. Cleans up on exit. Added BlobDataHandle. In-browser-process scoper object for a reference to a blob. 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) Added OnDidCreateSnapshotFile callback path, no longer overloading OnDidReadMetadata for that purpose. Removed dependency on blobs from the browser-side of SnapshotFile creation. Switched to using string uuids instead of urls in IPC messages (and structs carried in ipc messages) - 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. BUG=174200

Patch Set 1 #

Patch Set 2 : #

Patch Set 3 : #

Patch Set 4 : #

Patch Set 5 : #

Patch Set 6 : #

Total comments: 9

Patch Set 7 : #

Patch Set 8 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+846 lines, -511 lines) Patch
M chrome/browser/extensions/api/downloads/downloads_api_unittest.cc View 1 2 3 4 5 6 7 10 chunks +26 lines, -12 lines 0 comments Download
M content/browser/appcache/appcache_browsertest.cc View 1 2 3 4 5 6 7 2 chunks +2 lines, -2 lines 0 comments Download
M content/browser/fileapi/chrome_blob_storage_context.h View 1 2 3 4 5 6 7 3 chunks +4 lines, -4 lines 0 comments Download
M content/browser/fileapi/chrome_blob_storage_context.cc View 1 2 3 4 5 6 7 2 chunks +3 lines, -3 lines 0 comments Download
M content/browser/fileapi/fileapi_message_filter.h View 1 2 3 4 5 6 7 5 chunks +19 lines, -13 lines 0 comments Download
M content/browser/fileapi/fileapi_message_filter.cc View 1 2 3 4 5 6 7 9 chunks +56 lines, -98 lines 0 comments Download
M content/browser/loader/resource_dispatcher_host_impl.cc View 1 2 3 4 5 6 7 3 chunks +8 lines, -5 lines 0 comments Download
M content/browser/loader/resource_request_info_impl.h View 1 2 3 4 5 6 7 3 chunks +1 line, -9 lines 0 comments Download
M content/browser/loader/resource_request_info_impl.cc View 1 2 3 4 5 6 7 2 chunks +1 line, -5 lines 0 comments Download
M content/browser/net/view_blob_internals_job_factory.h View 1 2 3 4 5 6 7 2 chunks +3 lines, -1 line 0 comments Download
M content/browser/net/view_blob_internals_job_factory.cc View 1 2 3 4 5 6 7 2 chunks +4 lines, -0 lines 0 comments Download
M content/browser/storage_partition_impl_map.cc View 1 2 3 4 5 6 7 5 chunks +14 lines, -72 lines 0 comments Download
M content/common/fileapi/file_system_dispatcher.h View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M content/common/fileapi/file_system_dispatcher.cc View 1 2 3 4 5 6 7 1 chunk +2 lines, -2 lines 0 comments Download
M content/common/fileapi/file_system_messages.h View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M content/common/fileapi/webblob_messages.h View 1 2 3 4 5 6 7 1 chunk +17 lines, -24 lines 0 comments Download
M content/common/fileapi/webblobregistry_impl.h View 1 2 3 4 5 6 7 1 chunk +20 lines, -4 lines 0 comments Download
M content/common/fileapi/webblobregistry_impl.cc View 1 2 3 4 5 6 7 7 chunks +124 lines, -12 lines 0 comments Download
M content/common/fileapi/webfilewriter_impl.h View 1 2 3 4 5 6 7 2 chunks +3 lines, -1 line 0 comments Download
M content/common/fileapi/webfilewriter_impl.cc View 1 2 3 4 5 6 7 1 chunk +2 lines, -2 lines 0 comments Download
M content/common/resource_messages.cc View 1 2 3 4 5 6 7 3 chunks +5 lines, -5 lines 0 comments Download
M content/common/webkitplatformsupport_impl.h View 1 2 3 4 5 6 7 2 chunks +8 lines, -0 lines 0 comments Download
M content/common/webkitplatformsupport_impl.cc View 1 2 3 4 5 6 7 2 chunks +12 lines, -1 line 0 comments Download
M content/renderer/renderer_webkitplatformsupport_impl.h View 1 2 3 4 5 6 7 2 chunks +0 lines, -3 lines 0 comments Download
M content/renderer/renderer_webkitplatformsupport_impl.cc View 1 2 3 4 5 6 7 2 chunks +0 lines, -11 lines 0 comments Download
M content/worker/worker_webkitplatformsupport_impl.h View 1 2 3 4 5 6 7 2 chunks +0 lines, -4 lines 0 comments Download
M content/worker/worker_webkitplatformsupport_impl.cc View 1 2 3 4 5 6 7 2 chunks +0 lines, -7 lines 0 comments Download
M webkit/base/data_element.h View 1 2 3 4 5 6 7 5 chunks +12 lines, -9 lines 0 comments Download
M webkit/base/data_element.cc View 1 2 3 4 5 6 7 2 chunks +4 lines, -4 lines 0 comments Download
M webkit/blob/blob_data.h View 1 2 3 4 5 6 7 4 chunks +5 lines, -2 lines 0 comments Download
M webkit/blob/blob_data.cc View 1 2 3 4 5 6 7 2 chunks +6 lines, -3 lines 0 comments Download
A + webkit/blob/blob_storage_context.h View 1 2 3 4 5 6 7 1 chunk +111 lines, -28 lines 0 comments Download
A + webkit/blob/blob_storage_context.cc View 1 2 3 4 5 6 7 7 chunks +234 lines, -84 lines 0 comments Download
M webkit/blob/blob_storage_controller.h View 1 2 3 4 5 6 7 2 chunks +6 lines, -0 lines 0 comments Download
M webkit/blob/blob_storage_controller.cc View 1 2 3 4 5 6 7 1 chunk +3 lines, -0 lines 0 comments Download
M webkit/blob/blob_url_request_job.cc View 1 2 3 4 5 6 7 1 chunk +2 lines, -1 line 0 comments Download
M webkit/blob/blob_url_request_job_factory.h View 1 2 3 4 5 6 7 3 chunks +10 lines, -7 lines 0 comments Download
M webkit/blob/blob_url_request_job_factory.cc View 1 2 3 4 5 6 7 1 chunk +26 lines, -13 lines 0 comments Download
M webkit/blob/view_blob_internals_job.cc View 1 2 3 4 5 6 7 2 chunks +5 lines, -0 lines 0 comments Download
M webkit/blob/webkit_blob.gypi View 1 2 3 4 5 6 7 1 chunk +2 lines, -2 lines 0 comments Download
M webkit/chromeos/fileapi/remote_file_system_operation.h View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M webkit/chromeos/fileapi/remote_file_system_operation.cc View 1 2 3 4 5 6 7 2 chunks +6 lines, -2 lines 0 comments Download
M webkit/fileapi/file_system_operation.h View 1 2 3 4 5 6 7 2 chunks +4 lines, -3 lines 0 comments Download
M webkit/fileapi/local_file_system_operation.h View 1 2 3 4 5 6 7 3 chunks +6 lines, -2 lines 0 comments Download
M webkit/fileapi/local_file_system_operation.cc View 1 2 3 4 5 6 7 4 chunks +12 lines, -5 lines 0 comments Download
M webkit/fileapi/syncable/syncable_file_system_operation.h View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M webkit/fileapi/syncable/syncable_file_system_operation.cc View 1 2 3 4 5 6 7 3 chunks +3 lines, -3 lines 0 comments Download
M webkit/fileapi/webfilewriter_base.h View 1 2 3 4 5 6 7 3 chunks +4 lines, -2 lines 0 comments Download
M webkit/fileapi/webfilewriter_base.cc View 1 2 3 4 5 6 7 1 chunk +2 lines, -2 lines 0 comments Download
M webkit/glue/glue_serialize.cc View 1 2 3 4 5 6 7 4 chunks +14 lines, -7 lines 0 comments Download
M webkit/glue/resource_request_body.h View 1 2 3 4 5 6 7 5 chunks +6 lines, -5 lines 0 comments Download
M webkit/glue/resource_request_body.cc View 1 2 3 4 5 6 7 6 chunks +22 lines, -20 lines 0 comments Download
M webkit/glue/weburlloader_impl.cc View 1 2 3 4 5 6 7 2 chunks +3 lines, -3 lines 0 comments Download

Messages

Total messages: 2 (0 generated)
kinuko
https://codereview.chromium.org/11410019/diff/56001/content/browser/fileapi/fileapi_message_filter.cc File content/browser/fileapi/fileapi_message_filter.cc (right): https://codereview.chromium.org/11410019/diff/56001/content/browser/fileapi/fileapi_message_filter.cc#newcode246 content/browser/fileapi/fileapi_message_filter.cc:246: FileSystemOperation* operation = GetNewOperation(src_url, request_id); note: in the current ...
7 years, 11 months ago (2013-01-07 08:52:00 UTC) #1
michaeln
7 years, 11 months ago (2013-01-25 21:19:44 UTC) #2
https://codereview.chromium.org/11410019/diff/56001/content/browser/fileapi/f...
File content/browser/fileapi/fileapi_message_filter.cc (right):

https://codereview.chromium.org/11410019/diff/56001/content/browser/fileapi/f...
content/browser/fileapi/fileapi_message_filter.cc:246: FileSystemOperation*
operation = GetNewOperation(src_url, request_id);
On 2013/01/07 08:52:01, kinuko wrote:
> note: in the current code this needs to take dest_url

Done.

https://codereview.chromium.org/11410019/diff/56001/content/browser/fileapi/f...
content/browser/fileapi/fileapi_message_filter.cc:266: FileSystemOperation*
operation = GetNewOperation(src_url, request_id);
On 2013/01/07 08:52:01, kinuko wrote:
> ditto

Done.

https://codereview.chromium.org/11410019/diff/56001/content/browser/fileapi/f...
content/browser/fileapi/fileapi_message_filter.cc:555:
operation->SyncGetPlatformPath(url, platform_path);
On 2013/01/07 08:52:01, kinuko wrote:
> nit: indent is off

Done.

https://codereview.chromium.org/11410019/diff/56001/content/browser/fileapi/f...
content/browser/fileapi/fileapi_message_filter.cc:806: // and takes  a ref of
its own.
On 2013/01/07 08:52:01, kinuko wrote:
> nit: extra space before 'a ref'

Done.

Powered by Google App Engine
This is Rietveld 408576698