Re: Issue 375297 in chromium: the total blobs' size cannot exceed about 500MiB

186 views
Skip to first unread message

chro...@googlecode.com

unread,
May 21, 2014, 5:57:04 AM5/21/14
to chromi...@chromium.org
Updates:
Cc: tkonch...@chromium.org
Labels: Needs-Feedback

Comment #1 on issue 375297 by tkonch...@chromium.org: the total blobs' size
cannot exceed about 500MiB
http://code.google.com/p/chromium/issues/detail?id=375297

DOwnloaded the zip file and opened index.html file in win8 chrome version
34.0.1847.137 and observed there is no download button to download the
files. Could you please elaborate the steps to repro the issue. A screen
cast will be more helpful.

--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings

chro...@googlecode.com

unread,
May 21, 2014, 7:51:55 AM5/21/14
to chromi...@chromium.org

Comment #2 on issue 375297 by jiangzid...@gmail.com: the total blobs' size
the way to reproduce the problem
1, download the attachments
2, open the index.html with chrome.(it's better if we open the inspector )
3, click the button

it is designed to download 100 files which is 9.53MiB
but it can only download the former 52 files (about 500MiB)

Attachments:
index.html 819 bytes
FileSaver.js 7.6 KB

chro...@googlecode.com

unread,
May 26, 2014, 5:03:49 AM5/26/14
to chromi...@chromium.org
Updates:
Status: Untriaged
Cc: msrchan...@chromium.org
Labels: -OS-Windows -Needs-Feedback OS-All M-37

Comment #4 on issue 375297 by msrchan...@chromium.org: the total blobs'
Able to reproduce the issue with the files provided in Comment#2.
This is a Non-Regression Issue. Existing from Chrome build# 32.0.1700.5
(Official Build 233174) m Aura.

Also reproducible on Mac OS X 10.9.2 and Linux Ubuntu 12.04.

chro...@googlecode.com

unread,
Jul 25, 2014, 10:14:24 PM7/25/14
to chromi...@chromium.org

Comment #9 on issue 375297 by iSe...@gmail.com: the total blobs' size
Oh, I see. Apparently immediate revocation fares better in Chrome, so I
split up the revocation code to do that for Chrome-only and to use the
delay for Firefox. Please tell me if
https://github.com/eligrey/FileSaver.js/commit/1e7251f2d4daaa339ad9acdba943eefc7203c04e
fixed it for you.

Also, we probably shouldn't spam this issue too much--if you continue to
experience the specific FileSaver.js issue, please make a bug report on the
github repo. Let's keep this chromium issue report just for the underlying
fundamental issue with object URLs.

@Everyone else: This is still a valid bug in the sense that there is no way
to determine when it is safe to revoke an object URL. Though it's more a
spec issue than an implementation issue.

chro...@googlecode.com

unread,
Jul 27, 2014, 8:44:04 PM7/27/14
to chromi...@chromium.org

Comment #10 on issue 375297 by jiangzid...@gmail.com: the total blobs' size
thanks! it works!

chro...@googlecode.com

unread,
Jul 29, 2014, 6:44:42 AM7/29/14
to chromi...@chromium.org

Comment #11 on issue 375297 by a...@rigo.sk: the total blobs' size cannot
var blob_a = new Blob([new ArrayBuffer(500*1024*1024)],
{type: 'application/octet-string'});
var blob_b = new Blob([new ArrayBuffer(500*1024*1024)],
{type: 'application/octet-string'});
var url_a = URL.createObjectURL(blob_a); // You can open url_a
var url_b = URL.createObjectURL(blob_b); // You can't open url_b

This minimal example should work or at least throw an error. Current
behavior is that the first one will trigger the blobs download, the second
one will silently fail.

Also the fail happens if you simply create a single larger blob eg.:
var url = URL.createObjectURL(new Blob([new Uint8Array(700*1024*1024)],
{type: 'application/octet-string'}));

(16GB RAM, Windows 8.1, Chrome: 37.0.2062.44 beta-m)

chro...@googlecode.com

unread,
Dec 2, 2014, 7:04:51 PM12/2/14
to chromi...@chromium.org
Updates:
Status: Available
Cc: k...@chromium.org micha...@chromium.org jsb...@chromium.org
Labels: -Cr-Blink-JavaScript -M-38 Cr-Blink-FileAPI M-41

Comment #12 on issue 375297 by k...@chromium.org: the total blobs' size
cannot exceed about 500MiB
https://code.google.com/p/chromium/issues/detail?id=375297

A colleague just ran into this same limitation trying to save large STL
files from a web application they're developing. The attached test case
shows it's impossible to successfully create a single Blob of size (500 MB
+ 1 byte).

Could we please lift this arbitrary restriction on Blobs' allocated size?
This issue doesn't exist in Firefox. Updating labels and targeting at M41.


Attachments:
blob-test.html 401 bytes

chro...@googlecode.com

unread,
Dec 3, 2014, 5:17:23 PM12/3/14
to chromi...@chromium.org
Updates:
Status: Assigned
Owner: dmu...@chromium.org

Comment #13 on issue 375297 by jsb...@chromium.org: the total blobs' size
(No comment was entered for this change.)

chro...@googlecode.com

unread,
Dec 16, 2014, 5:22:17 PM12/16/14
to chromi...@chromium.org

Comment #14 on issue 375297 by dmu...@chromium.org: the total blobs' size
Brain dump after exploration:

The limit exists here:
https://code.google.com/p/chromium/codesearch#chromium/src/storage/browser/blob/blob_storage_context.cc&type=cs&sq=package:chromium&l=37&rcl=1418672972

The reason this exists is because all blobs are stored in memory in the
browser process. Obviously we can't have the be unbounded, so after .5
gigs, we start throwing back garbage blobs. Also notice that this data is
streamed to the browser process. So this doesn't depend on
the .createObjectURL, just keeping around blobs that total > 512MB creates
this problem.

Multiple issues here:
1. A file is larger than the memory limit. This will always have to be
represented at least partially on disk, if not completely on disk.
2. Multiple blobs (I believe this store is per-profile) can fill this up,
so being able to boot some to disk would be great.

Ideas:
1. Universal algorithm of: "If we're appending to a blob and we reach the
memory limit, boot the largest blob we have (including possibly the one
we're appending to) to disk". This solves both problems nicely, but could
result in less-than-optimal distribution of files on disk vs memory. This
could be solved by knowing the size of the currently growing blob ahead of
time. I imagine ideally we want the largest blobs on disk.
2. Solve the "file > max memory" problem by always booting those blobs to
disk right away. This might depend on us knowing the total size of the
blob before saving it, which might not be possible. This would maybe be
more performant than above, as we're not doing a second partial storage in
memory before booting to disk.
3. We could look at doing spec changes to allow dynamic revocation of
blobs based on a cache strategy like LRU. Sites that would break due to
this would already be broken if they're already hitting the memory limit,
so I think this would be a not-too-dangerous change.

Looking at file cleanup, I believe all blobs are cleaned up on shutdown (or
startup if we're crashed), so that wouldn't be an issue for file-backing
these guys.

Conclusion:
I'm a fan of doing both #1 and #2, as that will keep the system running
optimally, but this assumes we can known the total size of a blob before
streaming the data to the browser process, which might not be possible (or
feasible). The easier would probably be doing just #1. The spec change
would be nice to give us more flexibility here as well, and an LRU is easy
to implement.

Keep in mind there are a decent number of assumptions I'm making here, so
this is still speculation. I'm going to do more work to create a prototype
& design doc.

chro...@googlecode.com

unread,
Dec 16, 2014, 7:34:11 PM12/16/14
to chromi...@chromium.org

Comment #15 on issue 375297 by dmu...@chromium.org: the total blobs' size
I created a workaround! It's not performant at all, but it works:
https://github.com/dmurph/sandbox/blob/master/blobRepro.js

Main idea: force blobs to be file-backed by saving them to indexeddb and
then grabbing them again. Then create a blob that concatenates all of
these, and then use that as your >500MB blob.

chro...@googlecode.com

unread,
Dec 19, 2014, 8:14:09 PM12/19/14
to chromi...@chromium.org

Comment #17 on issue 375297 by dmu...@chromium.org: the total blobs' size
whoops, wrong bug. Sorry!

chro...@googlecode.com

unread,
Jan 7, 2015, 4:37:41 PM1/7/15
to chromi...@chromium.org

Comment #18 on issue 375297 by bugdro...@chromium.org: the total blobs'
size cannot exceed about 500MiB
https://code.google.com/p/chromium/issues/detail?id=375297#c18

The following revision refers to this bug:

https://chromium.googlesource.com/chromium/src.git/+/69e28f6f37f80b9a472a41ba8198d5818508100f

commit 69e28f6f37f80b9a472a41ba8198d5818508100f
Author: dmurph <dmu...@chromium.org>
Date: Wed Jan 07 21:07:59 2015

[Storage] Added histograms for blob storage

For finding:
* Size distribution of blob storage
* Size distribution of blob items
* Number of cases when we are exceeding internal memory for blobs.
See here for info: https://bit.ly/AutoBlobToDisk

BUG=375297

Review URL: https://codereview.chromium.org/812843005

Cr-Commit-Position: refs/heads/master@{#310367}

[modify]
http://crrev.com/69e28f6f37f80b9a472a41ba8198d5818508100f/storage/browser/blob/blob_storage_context.cc
[modify]
http://crrev.com/69e28f6f37f80b9a472a41ba8198d5818508100f/tools/metrics/histograms/histograms.xml

chro...@googlecode.com

unread,
Jan 9, 2015, 7:25:21 PM1/9/15
to chromi...@chromium.org

Comment #19 on issue 375297 by bugdro...@chromium.org: the total blobs'
size cannot exceed about 500MiB
https://code.google.com/p/chromium/issues/detail?id=375297#c19

The following revision refers to this bug:

https://chromium.googlesource.com/chromium/src.git/+/4ab290eb5456785c79725e71719c9257dd2212bb

commit 4ab290eb5456785c79725e71719c9257dd2212bb
Author: dmurph <dmu...@chromium.org>
Date: Fri Jan 09 23:56:18 2015

[Storage] Added blob items count histogram

R=asvitkine, michaeln
BUG=375297

Review URL: https://codereview.chromium.org/826373003

Cr-Commit-Position: refs/heads/master@{#310897}

[modify]
http://crrev.com/4ab290eb5456785c79725e71719c9257dd2212bb/storage/browser/blob/blob_storage_context.cc
[modify]
http://crrev.com/4ab290eb5456785c79725e71719c9257dd2212bb/tools/metrics/histograms/histograms.xml

chro...@googlecode.com

unread,
Jan 13, 2015, 1:42:31 AM1/13/15
to chromi...@chromium.org
Updates:
Labels: TE-Verified-41.0.2272.3 TE-Verified-M41

Comment #21 on issue 375297 by tkonch...@chromium.org: the total blobs'
Tested the same on mac 10.9 chrome version 41.0.2272.3 using the files
given in comment #2 - Fix works as expected

Please find the screenshot

Attachments:
Screen Shot 2015-01-12 at 10.21.58 PM.png 60.6 KB

chro...@googlecode.com

unread,
Jan 13, 2015, 8:50:03 AM1/13/15
to chromi...@chromium.org

Comment #22 on issue 375297 by Den...@gmail.com: the total blobs' size
Here is the sample file from issue 230858 - This seems more like a memory
leak than the 500mb issue though.

Attachments:
blobappend.html 459 bytes

chro...@googlecode.com

unread,
Jan 21, 2015, 5:27:23 PM1/21/15
to chromi...@chromium.org

Comment #25 on issue 375297 by dmu...@chromium.org: the total blobs' size
Progress is ongoing, here is the design doc:
https://bit.ly/AutoBlobToDisk

and current CLs:
https://codereview.chromium.org/810403004/
https://codereview.chromium.org/821913004/

Apologies, I should have appended that doc to this issue. We're hoping to
land the fixes by the next release.

chro...@googlecode.com

unread,
Jan 22, 2015, 11:45:22 PM1/22/15
to chromi...@chromium.org

Comment #27 on issue 375297 by bugdro...@chromium.org: the total blobs'
size cannot exceed about 500MiB
https://code.google.com/p/chromium/issues/detail?id=375297#c27

The following revision refers to this bug:

https://chromium.googlesource.com/chromium/src.git/+/4e45f41babddb10985c8c0afb9b0b6b9e8356094

commit 4e45f41babddb10985c8c0afb9b0b6b9e8356094
Author: dmurph <dmu...@chromium.org>
Date: Fri Jan 23 04:29:21 2015

[Storage] Consolidation of BlobItems with small size
https://bit.ly/AutoBlobToDisk

R=michaeln, piman
BUG=375297

Review URL: https://codereview.chromium.org/821913004

Cr-Commit-Position: refs/heads/master@{#312770}

[modify]
http://crrev.com/4e45f41babddb10985c8c0afb9b0b6b9e8356094/content/child/webblobregistry_impl.cc
[modify]
http://crrev.com/4e45f41babddb10985c8c0afb9b0b6b9e8356094/content/child/webblobregistry_impl.h
[modify]
http://crrev.com/4e45f41babddb10985c8c0afb9b0b6b9e8356094/storage/common/data_element.h

chro...@googlecode.com

unread,
Jan 23, 2015, 1:08:10 AM1/23/15
to chromi...@chromium.org

Comment #28 on issue 375297 by bugdro...@chromium.org: the total blobs'
size cannot exceed about 500MiB
https://code.google.com/p/chromium/issues/detail?id=375297#c28

The following revision refers to this bug:

https://chromium.googlesource.com/chromium/src.git/+/0f82e12a3934b87edc51c800dfc9f27b9131da19

commit 0f82e12a3934b87edc51c800dfc9f27b9131da19
Author: kochi <ko...@chromium.org>
Date: Fri Jan 23 05:57:09 2015

Revert of [Storage] Consoliation of BlobItems with small size (patchset #8
id:140001 of https://codereview.chromium.org/821913004/)

Reason for revert:
This caused regression on some layout tests.
e.g.
http://build.chromium.org/p/chromium.webkit/builders/WebKit%20Mac10.6%20%28deps%29/builds/35407
fast/files/read-blob-async.html
fast/files/workers/worker-read-blob-async.html
fast/files/workers/worker-read-blob-sync.html
fast/files/workers/worker-read-file-constructor-async.html
http/tests/local/blob/send-data-blob.html
http/tests/navigation/beacon-same-origin.html
http/tests/websocket/bufferedAmount-after-send.html

Original issue's description:
> [Storage] Consolidation of BlobItems with small size
> https://bit.ly/AutoBlobToDisk

> R=michaeln, piman
> BUG=375297

> Committed: https://crrev.com/4e45f41babddb10985c8c0afb9b0b6b9e8356094
> Cr-Commit-Position: refs/heads/master@{#312770}

TBR=mich...@chromium.org,pi...@chromium.org,dmu...@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=375297

Review URL: https://codereview.chromium.org/869763003

Cr-Commit-Position: refs/heads/master@{#312782}

[modify]
http://crrev.com/0f82e12a3934b87edc51c800dfc9f27b9131da19/content/child/webblobregistry_impl.cc
[modify]
http://crrev.com/0f82e12a3934b87edc51c800dfc9f27b9131da19/content/child/webblobregistry_impl.h
[modify]
http://crrev.com/0f82e12a3934b87edc51c800dfc9f27b9131da19/storage/common/data_element.h

chro...@googlecode.com

unread,
Jan 23, 2015, 4:21:17 AM1/23/15
to chromi...@chromium.org

Comment #29 on issue 375297 by bugdro...@chromium.org: the total blobs'
size cannot exceed about 500MiB
https://code.google.com/p/chromium/issues/detail?id=375297#c29

The following revision refers to this bug:

https://chromium.googlesource.com/chromium/src.git/+/bff2e53fb3e210be45d264797036ec59005ebdd6

commit bff2e53fb3e210be45d264797036ec59005ebdd6
Author: dmurph <dmu...@chromium.org>
Date: Fri Jan 23 09:18:56 2015

[Storage] Blob Storage Refactoring pt 1:
* Renaming classes to be more descriptive.
* Changing smart pointers to reflect strict ownership model.
* Adding pointers to facilitate future resource swapping.
* Remove renderer-side dependency on blob_data.h

This patch makes all of the far-reaching changes that effect
everyone that uses the blob storage context. Subsequent
changes should only effect the blob infrastructure.

https://bit.ly/AutoBlobToDisk

BUG=375297

Review URL: https://codereview.chromium.org/810403004

Cr-Commit-Position: refs/heads/master@{#312800}

[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/chrome/browser/chromeos/drive/fileapi/async_file_util.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/chrome/browser/chromeos/drive/fileapi/fileapi_worker.h
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/chrome/browser/chromeos/file_manager/snapshot_manager.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/chrome/browser/chromeos/file_system_provider/fileapi/provider_async_file_util.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/chrome/browser/chromeos/file_system_provider/fileapi/provider_async_file_util_unittest.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/chrome/browser/extensions/api/developer_private/developer_private_api.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/chrome/browser/extensions/api/page_capture/page_capture_api.h
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/chrome/browser/media_galleries/fileapi/device_media_async_file_util.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/chrome/browser/media_galleries/fileapi/device_media_async_file_util.h
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/chrome/browser/media_galleries/fileapi/iphoto_file_util.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/chrome/browser/media_galleries/fileapi/itunes_file_util.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/chrome/browser/media_galleries/fileapi/native_media_file_util.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/chrome/browser/media_galleries/fileapi/picasa_file_util_unittest.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/chrome/browser/sync_file_system/drive_backend/drive_backend_util.h
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/chrome/browser/sync_file_system/drive_backend/sync_engine.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/chrome/browser/sync_file_system/local/canned_syncable_file_system.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/chrome/browser/sync_file_system/local/local_file_sync_context.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/chrome/browser/sync_file_system/local/local_file_sync_context_unittest.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/chrome/browser/sync_file_system/local/local_file_sync_service.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/chrome/browser/sync_file_system/local/syncable_file_system_operation.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/content/browser/fileapi/blob_storage_context_unittest.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/content/browser/fileapi/blob_storage_host.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/content/browser/fileapi/blob_storage_host.h
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/content/browser/fileapi/blob_url_request_job_unittest.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/content/browser/fileapi/chrome_blob_storage_context.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/content/browser/fileapi/copy_or_move_file_validator_unittest.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/content/browser/fileapi/file_system_operation_impl_unittest.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/content/browser/fileapi/file_system_operation_impl_write_unittest.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/content/browser/fileapi/fileapi_message_filter.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/content/browser/fileapi/fileapi_message_filter.h
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/content/browser/fileapi/fileapi_message_filter_unittest.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/content/browser/fileapi/transient_file_util_unittest.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/content/browser/indexed_db/indexed_db_active_blob_registry.h
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/content/browser/indexed_db/indexed_db_blob_info.h
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/content/browser/indexed_db/indexed_db_callbacks.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/content/browser/indexed_db/indexed_db_dispatcher_host.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/content/browser/loader/redirect_to_file_resource_handler.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/content/browser/loader/resource_dispatcher_host_impl.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/content/browser/loader/resource_dispatcher_host_unittest.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/content/browser/loader/resource_loader_unittest.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/content/browser/loader/temporary_file_stream.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/content/browser/loader/temporary_file_stream_unittest.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/content/browser/loader/upload_data_stream_builder.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/content/browser/loader/upload_data_stream_builder_unittest.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/content/browser/media/android/media_resource_getter_impl.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/content/browser/service_worker/service_worker_browsertest.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/content/browser/service_worker/service_worker_cache.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/content/browser/service_worker/service_worker_cache.h
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/content/browser/service_worker/service_worker_cache_unittest.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/content/browser/service_worker/service_worker_url_request_job.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/content/browser/service_worker/service_worker_url_request_job_unittest.cc
[rename]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/content/browser/shareable_file_reference_unittest.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/content/browser/storage_partition_impl_map.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/content/child/webblobregistry_impl.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/content/common/fileapi/webblob_messages.h
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/content/content_tests.gypi
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/content/public/test/mock_blob_url_request_context.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/storage/browser/BUILD.gn
[add]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/storage/browser/blob/blob_data_builder.cc
[add]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/storage/browser/blob/blob_data_builder.h
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/storage/browser/blob/blob_data_handle.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/storage/browser/blob/blob_data_handle.h
[add]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/storage/browser/blob/blob_data_item.cc
[add]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/storage/browser/blob/blob_data_item.h
[add]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/storage/browser/blob/blob_data_snapshot.cc
[add]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/storage/browser/blob/blob_data_snapshot.h
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/storage/browser/blob/blob_storage_context.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/storage/browser/blob/blob_storage_context.h
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/storage/browser/blob/blob_url_request_job.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/storage/browser/blob/blob_url_request_job.h
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/storage/browser/blob/blob_url_request_job_factory.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/storage/browser/blob/blob_url_request_job_factory.h
[rename]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/storage/browser/blob/scoped_file.cc
[rename]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/storage/browser/blob/scoped_file.h
[rename]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/storage/browser/blob/shareable_file_reference.cc
[rename]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/storage/browser/blob/shareable_file_reference.h
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/storage/browser/blob/view_blob_internals_job.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/storage/browser/blob/view_blob_internals_job.h
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/storage/browser/fileapi/async_file_util_adapter.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/storage/browser/fileapi/copy_or_move_operation_delegate.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/storage/browser/fileapi/dragged_file_util.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/storage/browser/fileapi/file_system_file_stream_reader.h
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/storage/browser/fileapi/file_system_file_util.h
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/storage/browser/fileapi/file_system_operation_impl.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/storage/browser/fileapi/file_system_operation_impl.h
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/storage/browser/fileapi/file_system_operation_runner.cc
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/storage/browser/fileapi/obfuscated_file_util.h
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/storage/browser/fileapi/sandbox_file_stream_writer.h
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/storage/common/BUILD.gn
[delete]
http://crrev.com/98d7ef56b969695d1f185881e3eed845a3221136/storage/common/blob/blob_data.cc
[delete]
http://crrev.com/98d7ef56b969695d1f185881e3eed845a3221136/storage/common/blob/blob_data.h
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/storage/storage_browser.gyp
[modify]
http://crrev.com/bff2e53fb3e210be45d264797036ec59005ebdd6/storage/storage_common.gyp

chro...@googlecode.com

unread,
Jan 23, 2015, 3:52:38 PM1/23/15
to chromi...@chromium.org

Comment #30 on issue 375297 by bugdro...@chromium.org: the total blobs'
size cannot exceed about 500MiB
https://code.google.com/p/chromium/issues/detail?id=375297#c30

The following revision refers to this bug:

https://chromium.googlesource.com/chromium/src.git/+/a986a8db3f226762d312601a3cf6b770fe9df6ee

commit a986a8db3f226762d312601a3cf6b770fe9df6ee
Author: dmurph <dmu...@chromium.org>
Date: Fri Jan 23 19:58:07 2015

[Storage] Consolidation of BlobItems with small size
https://bit.ly/AutoBlobToDisk

R=michaeln, piman
BUG=375297

Committed: https://crrev.com/4e45f41babddb10985c8c0afb9b0b6b9e8356094
Cr-Commit-Position: refs/heads/master@{#312770}

Review URL: https://codereview.chromium.org/821913004

Cr-Commit-Position: refs/heads/master@{#312907}

[modify]
http://crrev.com/a986a8db3f226762d312601a3cf6b770fe9df6ee/content/child/webblobregistry_impl.cc
[modify]
http://crrev.com/a986a8db3f226762d312601a3cf6b770fe9df6ee/content/child/webblobregistry_impl.h
[modify]
http://crrev.com/a986a8db3f226762d312601a3cf6b770fe9df6ee/storage/common/data_element.h

chro...@googlecode.com

unread,
Mar 2, 2015, 7:44:20 PM3/2/15
to chromi...@chromium.org

Comment #32 on issue 375297 by bugdro...@chromium.org: the total blobs'
size cannot exceed about 500MiB
https://code.google.com/p/chromium/issues/detail?id=375297#c32

The following revision refers to this bug:

https://chromium.googlesource.com/chromium/src.git/+/f6629637feb3bbf186de75da8fe4028a5244389f

commit f6629637feb3bbf186de75da8fe4028a5244389f
Author: mtomasz <mto...@chromium.org>
Date: Tue Mar 03 00:20:06 2015

Allow offsets in blobs larger than 2GB on 32 bit Chromium builds.

The recent patch crrev.com/895933007 introduced a regression by using size_t
for offsets, which on 32bit builds is sizeof(size_t) = 4 which was causing
broken offset values due to assigning a uint64_t variable to such variables.

This CL fixes that by simply converting the types to uint64_t.

TEST=*FileSystemProvider*BigFile* on a 32 bit build Chromium build with
chromeos=1.
BUG=375297, 458122

Review URL: https://codereview.chromium.org/959113002

Cr-Commit-Position: refs/heads/master@{#318808}

[modify]
http://crrev.com/f6629637feb3bbf186de75da8fe4028a5244389f/chrome/browser/chromeos/extensions/file_system_provider/file_system_provider_apitest.cc
[modify]
http://crrev.com/f6629637feb3bbf186de75da8fe4028a5244389f/content/browser/fileapi/blob_storage_context_unittest.cc
[modify]
http://crrev.com/f6629637feb3bbf186de75da8fe4028a5244389f/storage/browser/blob/blob_storage_context.cc
[modify]
http://crrev.com/f6629637feb3bbf186de75da8fe4028a5244389f/storage/browser/blob/blob_storage_context.h

chro...@googlecode.com

unread,
Mar 11, 2015, 8:11:26 AM3/11/15
to chromi...@chromium.org
Updates:
Cc: ri...@chromium.org kin...@chromium.org nhi...@chromium.org

Comment #34 on issue 375297 by yhi...@chromium.org: the total blobs' size
Issue 464699 has been merged into this issue.

chro...@googlecode.com

unread,
Mar 17, 2015, 7:14:02 PM3/17/15
to chromi...@chromium.org
Updates:
Cc: dmu...@chromium.org

Comment #36 on issue 375297 by dmu...@chromium.org: the total blobs' size
Issue 467886 has been merged into this issue.

chro...@googlecode.com

unread,
May 19, 2015, 7:54:28 AM5/19/15
to chromi...@chromium.org

Comment #38 on issue 375297 by fer...@gmail.com: the total blobs' size
Is there an ETA on this issue being resolved?

It's currently blocking files larger than 500MB from being seeded on
https://instant.io. GitHub issue here:
https://github.com/feross/webtorrent/issues/319

chro...@googlecode.com

unread,
May 19, 2015, 2:55:01 PM5/19/15
to chromi...@chromium.org

Comment #39 on issue 375297 by dmu...@chromium.org: the total blobs' size
I'm planning on this quarter (by July 1st)

More info:
bit.ly/BlobRefactorPreso
bit.ly/BlobRefactorPreso2
bit.ly/BlobPlan

chro...@googlecode.com

unread,
Jun 15, 2015, 6:30:25 PM6/15/15
to chromi...@chromium.org

Comment #41 on issue 375297 by bugd...@chromium.org: the total blobs'
size cannot exceed about 500MiB
https://code.google.com/p/chromium/issues/detail?id=375297#c41

The following revision refers to this bug:
http://src.chromium.org/viewvc/blink?view=rev&rev=197142

------------------------------------------------------------------
r197142 | dmu...@chromium.org | 2015-06-15T22:12:29.775696Z

Changed paths:
M
http://src.chromium.org/viewvc/blink/trunk/Source/platform/exported/WebThreadSafeData.cpp?r1=197142&r2=197141&pathrev=197142
M
http://src.chromium.org/viewvc/blink/trunk/public/platform/WebBlobRegistry.h?r1=197142&r2=197141&pathrev=197142
M
http://src.chromium.org/viewvc/blink/trunk/public/platform/WebBlobData.h?r1=197142&r2=197141&pathrev=197142
M
http://src.chromium.org/viewvc/blink/trunk/public/platform/WebThreadSafeData.h?r1=197142&r2=197141&pathrev=197142

[Blob] Dependencies for blob storage testing

* Added a way to populate the memory in a WebThreadSafeData
for testing support in content/
* Added new blob registration method using the Builder pattern in the
WebBlobRegistry class.

BUG=375297

Review URL: https://codereview.chromium.org/1162773003
-----------------------------------------------------------------

chro...@googlecode.com

unread,
Jun 29, 2015, 5:34:47 PM6/29/15
to chromi...@chromium.org

Comment #42 on issue 375297 by bugd...@chromium.org: the total blobs'
size cannot exceed about 500MiB
https://code.google.com/p/chromium/issues/detail?id=375297#c42

The following revision refers to this bug:

https://chromium.googlesource.com/chromium/src.git/+/8a2ebfa1cb92700c36390a6ce9e83e8810655a62

commit 8a2ebfa1cb92700c36390a6ce9e83e8810655a62
Author: dmurph <dmu...@chromium.org>
Date: Mon Jun 29 21:30:14 2015

[Blob] Blob memory consolidation & blobregistry migration.

The blob consolidation class will hold the resources for the new
asynchronous protocol, where it will keep the memory around while we wait
for the browser to request it.

This is a multi-part patch. The next steps for Builder migration are:
* Change other users of WebBlobRegistry to use the Builder pattern
(mock_web_blob_registry.cc)
* Change blink to use the builder pattern and stop using registerBlob
* Remove WebBlobData and registerBlob method

The next steps for asynchronous blob transport:
* Add BlobStorageDispatcher with new IPC messages, and add asynchronous
callbacks in BlobStorageContext

See:
https://bit.ly/BlobStorageRefactor

This depends on blink patch here:
https://codereview.chromium.org/1162773003

BUG=375297

Review URL: https://codereview.chromium.org/1183713003

Cr-Commit-Position: refs/heads/master@{#336648}

[add]
http://crrev.com/8a2ebfa1cb92700c36390a6ce9e83e8810655a62/content/child/blob_storage/blob_consolidation.cc
[add]
http://crrev.com/8a2ebfa1cb92700c36390a6ce9e83e8810655a62/content/child/blob_storage/blob_consolidation.h
[add]
http://crrev.com/8a2ebfa1cb92700c36390a6ce9e83e8810655a62/content/child/blob_storage/blob_consolidation_unittest.cc
[modify]
http://crrev.com/8a2ebfa1cb92700c36390a6ce9e83e8810655a62/content/child/webblobregistry_impl.cc
[modify]
http://crrev.com/8a2ebfa1cb92700c36390a6ce9e83e8810655a62/content/child/webblobregistry_impl.h
[modify]
http://crrev.com/8a2ebfa1cb92700c36390a6ce9e83e8810655a62/content/content_child.gypi
[modify]
http://crrev.com/8a2ebfa1cb92700c36390a6ce9e83e8810655a62/content/content_tests.gypi

chro...@googlecode.com

unread,
Jul 20, 2015, 4:22:53 PM7/20/15
to chromi...@chromium.org

Comment #44 on issue 375297 by fer...@gmail.com: the total blobs' size
Much as I dislike +1 comments, I want to second the sentiment in Eric's
comment. This bug continues to cause a sub-par user experience for Chrome
users who use my app.

chro...@googlecode.com

unread,
Jul 20, 2015, 4:56:12 PM7/20/15
to chromi...@chromium.org

Comment #45 on issue 375297 by jsb...@chromium.org: the total blobs' size
Implementation work is ongoing. You can see the "bugdroid" comments above
showing incremental work landing.

chro...@googlecode.com

unread,
Jul 21, 2015, 1:13:27 PM7/21/15
to chromi...@chromium.org

Comment #47 on issue 375297 by dmu...@chromium.org: the total blobs' size
big patches are in the works. It's still being actively worked on :)

chro...@googlecode.com

unread,
Aug 17, 2015, 3:59:24 PM8/17/15
to chromi...@chromium.org

Comment #48 on issue 375297 by calebcba...@gmail.com: the total blobs' size
Ping, I have a pretty big work project hinging on this. Was wondering if
there were any updated ETAs?

chro...@googlecode.com

unread,
Sep 2, 2015, 4:25:41 PM9/2/15
to chromi...@chromium.org

Comment #50 on issue 375297 by jsb...@chromium.org: the total blobs' size
Issue 505219 has been merged into this issue.

chro...@googlecode.com

unread,
Sep 9, 2015, 1:49:24 PM9/9/15
to chromi...@chromium.org

Comment #51 on issue 375297 by christop...@gmail.com: the total blobs' size
Hi, joining the party...

I have been using blobs for a while but things started to work very
recently this this refactor. I'm using blobs to write out big files with
the FileWriter API from an extension. It all used to work fine even if I
had to put work arounds for 512MB limit but now it's barely working.

Writing a file returns me an InvalidStateError after a while and I can't
write files anymore. It looks the problem is coming from failing at getting
a new blob (which I create from arraybuffers).

I managed to get the point of failure in the debugger and I'm still
investigating and this is where it fails:

void BlobURLRequestJob::DidStart() {
current_file_chunk_number_ = 0;
error_ = false;

// We only support GET request per the spec.
if (request()->method() != "GET") {
NotifyFailure(net::ERR_METHOD_NOT_SUPPORTED);
return;
}

// If the blob data is not present, bail out.
if (!blob_data_) {
NotifyFailure(net::ERR_FILE_NOT_FOUND);
<---------------------------------------- FAIL HERE
return;
}

CountSize();
}

It's a huge problem for us as we use this extension to transfer big files
and it has become a big part of our pipeline. Can anyone look at this?

chro...@googlecode.com

unread,
Sep 9, 2015, 4:32:46 PM9/9/15
to chromi...@chromium.org
Updates:
Status: Started

Comment #52 on issue 375297 by jsb...@chromium.org: the total blobs' size
As noted above, this is actively being worked on.

chro...@googlecode.com

unread,
Sep 9, 2015, 9:28:13 PM9/9/15
to chromi...@chromium.org

Comment #53 on issue 375297 by christop...@gmail.com: the total blobs' size
Good news. Is there any ETA and/or a work around until this is fixed?

chro...@googlecode.com

unread,
Sep 29, 2015, 11:03:26 PM9/29/15
to chromi...@chromium.org

Comment #55 on issue 375297 by bugd...@chromium.org: the total blobs'
size cannot exceed about 500MiB
https://code.google.com/p/chromium/issues/detail?id=375297#c55

The following revision refers to this bug:

https://chromium.googlesource.com/chromium/src.git/+/02561552a57ed8792a8ebb2676bad485e1d99605

commit 02561552a57ed8792a8ebb2676bad485e1d99605
Author: dmurph <dmu...@chromium.org>
Date: Wed Sep 30 02:03:31 2015

[Blob] BlobReader class & tests, and removal of all redundant reading.

* New BlobReader class & tests
* Removal of other reading code, which now uses the BlobReader
* Removal of unnecessary UploadDiskCacheEntryElementReader
* Removal of blob expansion logic in UploadDataStreamBuilder

Now it's very easy for anyone in browserland to read blobs instead of
having to do url requests, and it's also easy for anyone to add new
blob backing storage.

This is a prerequisite for the new blob async transportation, see here:
goto/BlobPaging

BUG=138051,375297

Review URL: https://codereview.chromium.org/1337153002

Cr-Commit-Position: refs/heads/master@{#351470}

[add]
http://crrev.com/02561552a57ed8792a8ebb2676bad485e1d99605/content/browser/fileapi/blob_reader_unittest.cc
[modify]
http://crrev.com/02561552a57ed8792a8ebb2676bad485e1d99605/content/browser/fileapi/blob_url_request_job_unittest.cc
[modify]
http://crrev.com/02561552a57ed8792a8ebb2676bad485e1d99605/content/browser/loader/upload_data_stream_builder.cc
[modify]
http://crrev.com/02561552a57ed8792a8ebb2676bad485e1d99605/content/browser/loader/upload_data_stream_builder.h
[modify]
http://crrev.com/02561552a57ed8792a8ebb2676bad485e1d99605/content/browser/loader/upload_data_stream_builder_unittest.cc
[modify]
http://crrev.com/02561552a57ed8792a8ebb2676bad485e1d99605/content/content_tests.gypi
[delete]
http://crrev.com/112b86500a3a4e4969bd9f9584ee88490e16937e/net/base/upload_disk_cache_entry_element_reader.cc
[delete]
http://crrev.com/112b86500a3a4e4969bd9f9584ee88490e16937e/net/base/upload_disk_cache_entry_element_reader.h
[delete]
http://crrev.com/112b86500a3a4e4969bd9f9584ee88490e16937e/net/base/upload_disk_cache_entry_element_reader_unittest.cc
[modify]
http://crrev.com/02561552a57ed8792a8ebb2676bad485e1d99605/net/base/upload_element_reader.cc
[modify]
http://crrev.com/02561552a57ed8792a8ebb2676bad485e1d99605/net/base/upload_element_reader.h
[modify]
http://crrev.com/02561552a57ed8792a8ebb2676bad485e1d99605/net/net.gypi
[modify]
http://crrev.com/02561552a57ed8792a8ebb2676bad485e1d99605/storage/browser/BUILD.gn
[modify]
http://crrev.com/02561552a57ed8792a8ebb2676bad485e1d99605/storage/browser/blob/blob_data_handle.cc
[modify]
http://crrev.com/02561552a57ed8792a8ebb2676bad485e1d99605/storage/browser/blob/blob_data_handle.h
[modify]
http://crrev.com/02561552a57ed8792a8ebb2676bad485e1d99605/storage/browser/blob/blob_data_snapshot.h
[add]
http://crrev.com/02561552a57ed8792a8ebb2676bad485e1d99605/storage/browser/blob/blob_reader.cc
[add]
http://crrev.com/02561552a57ed8792a8ebb2676bad485e1d99605/storage/browser/blob/blob_reader.h
[modify]
http://crrev.com/02561552a57ed8792a8ebb2676bad485e1d99605/storage/browser/blob/blob_storage_context.cc
[modify]
http://crrev.com/02561552a57ed8792a8ebb2676bad485e1d99605/storage/browser/blob/blob_url_request_job.cc
[modify]
http://crrev.com/02561552a57ed8792a8ebb2676bad485e1d99605/storage/browser/blob/blob_url_request_job.h
[modify]
http://crrev.com/02561552a57ed8792a8ebb2676bad485e1d99605/storage/browser/blob/blob_url_request_job_factory.cc
[modify]
http://crrev.com/02561552a57ed8792a8ebb2676bad485e1d99605/storage/browser/blob/blob_url_request_job_factory.h
[add]
http://crrev.com/02561552a57ed8792a8ebb2676bad485e1d99605/storage/browser/blob/upload_blob_element_reader.cc
[add]
http://crrev.com/02561552a57ed8792a8ebb2676bad485e1d99605/storage/browser/blob/upload_blob_element_reader.h
[modify]
http://crrev.com/02561552a57ed8792a8ebb2676bad485e1d99605/storage/storage_browser.gyp

chro...@googlecode.com

unread,
Sep 30, 2015, 12:07:33 AM9/30/15
to chromi...@chromium.org

Comment #56 on issue 375297 by bugd...@chromium.org: the total blobs'
size cannot exceed about 500MiB
https://code.google.com/p/chromium/issues/detail?id=375297#c56

The following revision refers to this bug:

https://chromium.googlesource.com/chromium/src.git/+/929e1ea7fa9fe4f5c76d2506bc4a9cc1d7a4c539

commit 929e1ea7fa9fe4f5c76d2506bc4a9cc1d7a4c539
Author: kinuko <kin...@chromium.org>
Date: Wed Sep 30 03:56:42 2015

Revert of [Blob] BlobReader class & tests, and removal of all redundant
reading. (patchset #15 id:280001 of
https://codereview.chromium.org/1337153002/ )

Reason for revert:
BlobReaderTest.StateErrors failing on multiple bots.

../../content/browser/fileapi/blob_reader_unittest.cc:985: Failure
Death test: reader_->Read(buffer.get(), 10, &bytes_read,
base::Bind(&SetValue<int>, &async_bytes_read))
Result: failed to die.
Error msg:
[ DEATH ]

Original issue's description:
> [Blob] BlobReader class & tests, and removal of all redundant reading.

> * New BlobReader class & tests
> * Removal of other reading code, which now uses the BlobReader
> * Removal of unnecessary UploadDiskCacheEntryElementReader
> * Removal of blob expansion logic in UploadDataStreamBuilder

> Now it's very easy for anyone in browserland to read blobs instead of
> having to do url requests, and it's also easy for anyone to add new
> blob backing storage.

> This is a prerequisite for the new blob async transportation, see here:
> goto/BlobPaging

> BUG=138051,375297

> Committed: https://crrev.com/02561552a57ed8792a8ebb2676bad485e1d99605
> Cr-Commit-Position: refs/heads/master@{#351470}

TBR=mich...@chromium.org,mme...@chromium.org,dmu...@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=138051,375297

Review URL: https://codereview.chromium.org/1376123002

Cr-Commit-Position: refs/heads/master@{#351485}

[delete]
http://crrev.com/b9ecdc94bc359c7d16b9c5a93492fcb1e532ef7a/content/browser/fileapi/blob_reader_unittest.cc
[modify]
http://crrev.com/929e1ea7fa9fe4f5c76d2506bc4a9cc1d7a4c539/content/browser/fileapi/blob_url_request_job_unittest.cc
[modify]
http://crrev.com/929e1ea7fa9fe4f5c76d2506bc4a9cc1d7a4c539/content/browser/loader/upload_data_stream_builder.cc
[modify]
http://crrev.com/929e1ea7fa9fe4f5c76d2506bc4a9cc1d7a4c539/content/browser/loader/upload_data_stream_builder.h
[modify]
http://crrev.com/929e1ea7fa9fe4f5c76d2506bc4a9cc1d7a4c539/content/browser/loader/upload_data_stream_builder_unittest.cc
[modify]
http://crrev.com/929e1ea7fa9fe4f5c76d2506bc4a9cc1d7a4c539/content/content_tests.gypi
[add]
http://crrev.com/929e1ea7fa9fe4f5c76d2506bc4a9cc1d7a4c539/net/base/upload_disk_cache_entry_element_reader.cc
[add]
http://crrev.com/929e1ea7fa9fe4f5c76d2506bc4a9cc1d7a4c539/net/base/upload_disk_cache_entry_element_reader.h
[add]
http://crrev.com/929e1ea7fa9fe4f5c76d2506bc4a9cc1d7a4c539/net/base/upload_disk_cache_entry_element_reader_unittest.cc
[modify]
http://crrev.com/929e1ea7fa9fe4f5c76d2506bc4a9cc1d7a4c539/net/base/upload_element_reader.cc
[modify]
http://crrev.com/929e1ea7fa9fe4f5c76d2506bc4a9cc1d7a4c539/net/base/upload_element_reader.h
[modify]
http://crrev.com/929e1ea7fa9fe4f5c76d2506bc4a9cc1d7a4c539/net/net.gypi
[modify]
http://crrev.com/929e1ea7fa9fe4f5c76d2506bc4a9cc1d7a4c539/storage/browser/BUILD.gn
[modify]
http://crrev.com/929e1ea7fa9fe4f5c76d2506bc4a9cc1d7a4c539/storage/browser/blob/blob_data_handle.cc
[modify]
http://crrev.com/929e1ea7fa9fe4f5c76d2506bc4a9cc1d7a4c539/storage/browser/blob/blob_data_handle.h
[modify]
http://crrev.com/929e1ea7fa9fe4f5c76d2506bc4a9cc1d7a4c539/storage/browser/blob/blob_data_snapshot.h
[delete]
http://crrev.com/b9ecdc94bc359c7d16b9c5a93492fcb1e532ef7a/storage/browser/blob/blob_reader.cc
[delete]
http://crrev.com/b9ecdc94bc359c7d16b9c5a93492fcb1e532ef7a/storage/browser/blob/blob_reader.h
[modify]
http://crrev.com/929e1ea7fa9fe4f5c76d2506bc4a9cc1d7a4c539/storage/browser/blob/blob_storage_context.cc
[modify]
http://crrev.com/929e1ea7fa9fe4f5c76d2506bc4a9cc1d7a4c539/storage/browser/blob/blob_url_request_job.cc
[modify]
http://crrev.com/929e1ea7fa9fe4f5c76d2506bc4a9cc1d7a4c539/storage/browser/blob/blob_url_request_job.h
[modify]
http://crrev.com/929e1ea7fa9fe4f5c76d2506bc4a9cc1d7a4c539/storage/browser/blob/blob_url_request_job_factory.cc
[modify]
http://crrev.com/929e1ea7fa9fe4f5c76d2506bc4a9cc1d7a4c539/storage/browser/blob/blob_url_request_job_factory.h
[delete]
http://crrev.com/b9ecdc94bc359c7d16b9c5a93492fcb1e532ef7a/storage/browser/blob/upload_blob_element_reader.cc
[delete]
http://crrev.com/b9ecdc94bc359c7d16b9c5a93492fcb1e532ef7a/storage/browser/blob/upload_blob_element_reader.h
[modify]
http://crrev.com/929e1ea7fa9fe4f5c76d2506bc4a9cc1d7a4c539/storage/storage_browser.gyp

chro...@googlecode.com

unread,
Sep 30, 2015, 3:19:20 PM9/30/15
to chromi...@chromium.org

Comment #57 on issue 375297 by bugd...@chromium.org: the total blobs'
size cannot exceed about 500MiB
https://code.google.com/p/chromium/issues/detail?id=375297#c57

The following revision refers to this bug:

https://chromium.googlesource.com/chromium/src.git/+/164f0b76c3a8156b95c36f17c95c452e8f3b9765

commit 164f0b76c3a8156b95c36f17c95c452e8f3b9765
Author: dmurph <dmu...@chromium.org>
Date: Wed Sep 30 18:49:01 2015

[Blob] BlobReader class & tests, and removal of all redundant reading.

* New BlobReader class & tests
* Removal of other reading code, which now uses the BlobReader
* Removal of unnecessary UploadDiskCacheEntryElementReader
* Removal of blob expansion logic in UploadDataStreamBuilder

Now it's very easy for anyone in browserland to read blobs instead of
having to do url requests, and it's also easy for anyone to add new
blob backing storage.

This is a prerequisite for the new blob async transportation, see here:
goto/BlobPaging

BUG=138051,375297

Committed: https://crrev.com/02561552a57ed8792a8ebb2676bad485e1d99605
Cr-Commit-Position: refs/heads/master@{#351470}

Review URL: https://codereview.chromium.org/1337153002

Cr-Commit-Position: refs/heads/master@{#351611}

[add]
http://crrev.com/164f0b76c3a8156b95c36f17c95c452e8f3b9765/content/browser/fileapi/blob_reader_unittest.cc
[modify]
http://crrev.com/164f0b76c3a8156b95c36f17c95c452e8f3b9765/content/browser/fileapi/blob_url_request_job_unittest.cc
[modify]
http://crrev.com/164f0b76c3a8156b95c36f17c95c452e8f3b9765/content/browser/loader/upload_data_stream_builder.cc
[modify]
http://crrev.com/164f0b76c3a8156b95c36f17c95c452e8f3b9765/content/browser/loader/upload_data_stream_builder.h
[modify]
http://crrev.com/164f0b76c3a8156b95c36f17c95c452e8f3b9765/content/browser/loader/upload_data_stream_builder_unittest.cc
[modify]
http://crrev.com/164f0b76c3a8156b95c36f17c95c452e8f3b9765/content/content_tests.gypi
[delete]
http://crrev.com/72869406e9af49285a992c008a81bdfc99ce9f5b/net/base/upload_disk_cache_entry_element_reader.cc
[delete]
http://crrev.com/72869406e9af49285a992c008a81bdfc99ce9f5b/net/base/upload_disk_cache_entry_element_reader.h
[delete]
http://crrev.com/72869406e9af49285a992c008a81bdfc99ce9f5b/net/base/upload_disk_cache_entry_element_reader_unittest.cc
[modify]
http://crrev.com/164f0b76c3a8156b95c36f17c95c452e8f3b9765/net/base/upload_element_reader.cc
[modify]
http://crrev.com/164f0b76c3a8156b95c36f17c95c452e8f3b9765/net/base/upload_element_reader.h
[modify]
http://crrev.com/164f0b76c3a8156b95c36f17c95c452e8f3b9765/net/net.gypi
[modify]
http://crrev.com/164f0b76c3a8156b95c36f17c95c452e8f3b9765/storage/browser/BUILD.gn
[modify]
http://crrev.com/164f0b76c3a8156b95c36f17c95c452e8f3b9765/storage/browser/blob/blob_data_handle.cc
[modify]
http://crrev.com/164f0b76c3a8156b95c36f17c95c452e8f3b9765/storage/browser/blob/blob_data_handle.h
[modify]
http://crrev.com/164f0b76c3a8156b95c36f17c95c452e8f3b9765/storage/browser/blob/blob_data_snapshot.h
[add]
http://crrev.com/164f0b76c3a8156b95c36f17c95c452e8f3b9765/storage/browser/blob/blob_reader.cc
[add]
http://crrev.com/164f0b76c3a8156b95c36f17c95c452e8f3b9765/storage/browser/blob/blob_reader.h
[modify]
http://crrev.com/164f0b76c3a8156b95c36f17c95c452e8f3b9765/storage/browser/blob/blob_storage_context.cc
[modify]
http://crrev.com/164f0b76c3a8156b95c36f17c95c452e8f3b9765/storage/browser/blob/blob_url_request_job.cc
[modify]
http://crrev.com/164f0b76c3a8156b95c36f17c95c452e8f3b9765/storage/browser/blob/blob_url_request_job.h
[modify]
http://crrev.com/164f0b76c3a8156b95c36f17c95c452e8f3b9765/storage/browser/blob/blob_url_request_job_factory.cc
[modify]
http://crrev.com/164f0b76c3a8156b95c36f17c95c452e8f3b9765/storage/browser/blob/blob_url_request_job_factory.h
[add]
http://crrev.com/164f0b76c3a8156b95c36f17c95c452e8f3b9765/storage/browser/blob/upload_blob_element_reader.cc
[add]
http://crrev.com/164f0b76c3a8156b95c36f17c95c452e8f3b9765/storage/browser/blob/upload_blob_element_reader.h
[modify]
http://crrev.com/164f0b76c3a8156b95c36f17c95c452e8f3b9765/storage/storage_browser.gyp

chro...@googlecode.com

unread,
Oct 14, 2015, 1:34:33 PM10/14/15
to chromi...@chromium.org

Comment #60 on issue 375297 by bugd...@chromium.org: the total blobs'
size cannot exceed about 500MiB
https://code.google.com/p/chromium/issues/detail?id=375297#c60

The following revision refers to this bug:

https://chromium.googlesource.com/chromium/src.git/+/d0e06a58f51ee83a670829425cd65a5693909eee

commit d0e06a58f51ee83a670829425cd65a5693909eee
Author: dmurph <dmu...@chromium.org>
Date: Wed Oct 14 17:25:28 2015

[BlobAsync] Patch 1: BlobStorageRegistry
Note: This patch is a no-op, and will be hooked up in a later patch.

Patches:
1: https://codereview.chromium.org/1287303002
2: https://codereview.chromium.org/1288373002
3: https://codereview.chromium.org/1292523002
4: https://codereview.chromium.org/1098853003
Hookup: https://codereview.chromium.org/1234813004

BUG=375297

Review URL: https://codereview.chromium.org/1287303002

Cr-Commit-Position: refs/heads/master@{#354050}

[add]
http://crrev.com/d0e06a58f51ee83a670829425cd65a5693909eee/content/browser/blob_storage/blob_storage_registry_unittest.cc
[modify]
http://crrev.com/d0e06a58f51ee83a670829425cd65a5693909eee/content/content_tests.gypi
[modify]
http://crrev.com/d0e06a58f51ee83a670829425cd65a5693909eee/storage/browser/BUILD.gn
[add]
http://crrev.com/d0e06a58f51ee83a670829425cd65a5693909eee/storage/browser/blob/blob_storage_registry.cc
[add]
http://crrev.com/d0e06a58f51ee83a670829425cd65a5693909eee/storage/browser/blob/blob_storage_registry.h
[modify]
http://crrev.com/d0e06a58f51ee83a670829425cd65a5693909eee/storage/browser/blob/internal_blob_data.h
[modify]
http://crrev.com/d0e06a58f51ee83a670829425cd65a5693909eee/storage/storage_browser.gyp

chro...@googlecode.com

unread,
Oct 30, 2015, 10:26:41 PM10/30/15
to chromi...@chromium.org

Comment #61 on issue 375297 by bugd...@chromium.org: the total blobs'
size cannot exceed about 500MiB
https://code.google.com/p/chromium/issues/detail?id=375297#c61

The following revision refers to this bug:

https://chromium.googlesource.com/chromium/src.git/+/0140342861a6aa998ffbf44ecfdc360305f560bc

commit 0140342861a6aa998ffbf44ecfdc360305f560bc
Author: dmurph <dmu...@chromium.org>
Date: Sat Oct 31 01:04:52 2015

[BlobAsync] Patch 2: Common Constants
This CL contains constants for the
Blob Async Transport refactor.

Note: This CL is currently a no-op, hookup is in the 'Hookup' patch.

Patches:
1: https://codereview.chromium.org/1287303002 (Committed!)
Review URL: https://codereview.chromium.org/1288373002

Cr-Commit-Position: refs/heads/master@{#357248}

[modify]
http://crrev.com/0140342861a6aa998ffbf44ecfdc360305f560bc/content/browser/loader/upload_data_stream_builder.cc
[modify]
http://crrev.com/0140342861a6aa998ffbf44ecfdc360305f560bc/content/common/resource_messages.cc
[modify]
http://crrev.com/0140342861a6aa998ffbf44ecfdc360305f560bc/storage/browser/blob/blob_data_builder.cc
[modify]
http://crrev.com/0140342861a6aa998ffbf44ecfdc360305f560bc/storage/browser/blob/blob_data_builder.h
[modify]
http://crrev.com/0140342861a6aa998ffbf44ecfdc360305f560bc/storage/browser/blob/blob_data_item.cc
[modify]
http://crrev.com/0140342861a6aa998ffbf44ecfdc360305f560bc/storage/browser/blob/blob_data_item.h
[modify]
http://crrev.com/0140342861a6aa998ffbf44ecfdc360305f560bc/storage/browser/blob/blob_reader.cc
[modify]
http://crrev.com/0140342861a6aa998ffbf44ecfdc360305f560bc/storage/browser/blob/view_blob_internals_job.cc
[modify]
http://crrev.com/0140342861a6aa998ffbf44ecfdc360305f560bc/storage/common/BUILD.gn
[add]
http://crrev.com/0140342861a6aa998ffbf44ecfdc360305f560bc/storage/common/blob_storage/blob_item_bytes_request.cc
[add]
http://crrev.com/0140342861a6aa998ffbf44ecfdc360305f560bc/storage/common/blob_storage/blob_item_bytes_request.h
[add]
http://crrev.com/0140342861a6aa998ffbf44ecfdc360305f560bc/storage/common/blob_storage/blob_item_bytes_response.cc
[add]
http://crrev.com/0140342861a6aa998ffbf44ecfdc360305f560bc/storage/common/blob_storage/blob_item_bytes_response.h
[add]
http://crrev.com/0140342861a6aa998ffbf44ecfdc360305f560bc/storage/common/blob_storage/blob_storage_constants.h
[modify]
http://crrev.com/0140342861a6aa998ffbf44ecfdc360305f560bc/storage/common/data_element.cc
[modify]
http://crrev.com/0140342861a6aa998ffbf44ecfdc360305f560bc/storage/common/data_element.h
[modify]
http://crrev.com/0140342861a6aa998ffbf44ecfdc360305f560bc/storage/storage_common.gyp

chro...@googlecode.com

unread,
Oct 30, 2015, 11:19:42 PM10/30/15
to chromi...@chromium.org

Comment #62 on issue 375297 by bugd...@chromium.org: the total blobs'
size cannot exceed about 500MiB
https://code.google.com/p/chromium/issues/detail?id=375297#c62

The following revision refers to this bug:

https://chromium.googlesource.com/chromium/src.git/+/910d0ee4c7534c7366f3b1548c50102c67e56007

commit 910d0ee4c7534c7366f3b1548c50102c67e56007
Author: dmurph <dmu...@chromium.org>
Date: Sat Oct 31 02:10:22 2015

[BlobAsync] Patch 3: Renderer Classes & Logic
Note: This patch is a no-op.

Patches:
1: https://codereview.chromium.org/1287303002
Review URL: https://codereview.chromium.org/1292523002

Cr-Commit-Position: refs/heads/master@{#357258}

[add]
http://crrev.com/910d0ee4c7534c7366f3b1548c50102c67e56007/content/child/blob_storage/blob_transport_controller.cc
[add]
http://crrev.com/910d0ee4c7534c7366f3b1548c50102c67e56007/content/child/blob_storage/blob_transport_controller.h
[add]
http://crrev.com/910d0ee4c7534c7366f3b1548c50102c67e56007/content/child/blob_storage/blob_transport_controller_unittest.cc
[modify]
http://crrev.com/910d0ee4c7534c7366f3b1548c50102c67e56007/content/content_child.gypi
[modify]
http://crrev.com/910d0ee4c7534c7366f3b1548c50102c67e56007/content/content_tests.gypi
[modify]
http://crrev.com/910d0ee4c7534c7366f3b1548c50102c67e56007/storage/browser/blob/blob_data_item.cc
[modify]
http://crrev.com/910d0ee4c7534c7366f3b1548c50102c67e56007/storage/browser/blob/blob_data_item.h
[modify]
http://crrev.com/910d0ee4c7534c7366f3b1548c50102c67e56007/storage/common/blob_storage/blob_item_bytes_request.cc
[modify]
http://crrev.com/910d0ee4c7534c7366f3b1548c50102c67e56007/storage/common/blob_storage/blob_item_bytes_request.h
[modify]
http://crrev.com/910d0ee4c7534c7366f3b1548c50102c67e56007/storage/common/blob_storage/blob_item_bytes_response.cc
[modify]
http://crrev.com/910d0ee4c7534c7366f3b1548c50102c67e56007/storage/common/blob_storage/blob_item_bytes_response.h
[modify]
http://crrev.com/910d0ee4c7534c7366f3b1548c50102c67e56007/storage/common/data_element.cc
[modify]
http://crrev.com/910d0ee4c7534c7366f3b1548c50102c67e56007/storage/common/data_element.h

chro...@googlecode.com

unread,
Nov 9, 2015, 9:54:17 PM11/9/15
to chromi...@chromium.org

Comment #63 on issue 375297 by EricWoo...@gmail.com: the total blobs' size
So, whats going on with this? Lots of commits, no idea whats happening?

chro...@googlecode.com

unread,
Nov 11, 2015, 5:53:51 AM11/11/15
to chromi...@chromium.org

Comment #64 on issue 375297 by m...@ramondeklein.nl: the total blobs' size
It seems that it related to issue #554217. The BLOB creation method checks
for the 500MB limit for BLOBs without making sure the garbage collector has
been run. I guess the proper fix is to first run the garbage collector when
the 500MB limit is reached. This would dispose the unused BLOBs and make
space for the newly allocated BLOBs.

chro...@googlecode.com

unread,
Nov 23, 2015, 7:23:11 PM11/23/15
to chromi...@chromium.org

Comment #66 on issue 375297 by dmu...@chromium.org: the total blobs' size
Issue 559375 has been merged into this issue.
Reply all
Reply to author
Forward
0 new messages