-
Notifications
You must be signed in to change notification settings - Fork 44
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Async factory methods for Blob and File #157
Comments
I'm confused. Why would web developers ever use these async factories instead of using the existing sync ones? |
I think the difference would be that with the sync constructors you wouldn't know if construction failed; you'd only get an error as soon as something tries to read from the blob (that's already how it works today in chrome; blob construction can already fail). While with these async factories you could detect and handle these errors sooner. While I agree that most developers probably wouldn't care/bother, it does seem like some subset of developers would probably like to be able to detect these kinds of errors. |
Are these kind of blobs you cannot read from defined properly? Does their existence mean we could bring back |
#154 is trying to define "blobs you can't read from" properly. Although not specifically these blobs. Some kind of status getter might make sense (especially for things like IDB, file and cache storage backed blobs that can start out readable, and later become unreadable). Not sure about close; or at least close with any guarantees on effects on quota, memory usage etc. |
TPAC 2024: This is predicated on quota discussions, and there is no consensus here. So absent new efforts, closing this. Adding more ergo construction methods should be a new issue. The consensus is that better construction methods seem reasonable to avoid things like the |
Blob
andFile
objects are currently created using the Blob constructor and File constructor. While this is very intuitive, the synchronous aspect of the creation makes it difficult to integrate these object with modern storage systems.Motivation
Here are two concrete problems I'm trying to address.
Background: In Chrome, Blobs and Files objects can store more data than would fit in RAM. This is accomplished by spilling the content to disk when needed. Since they write to disk
blob://
URLs. This is currently done by invoking a synchronous IPC in theBlob
andFile
constructors.Alternative: This problem might also be addressed by migrating to an asynchronous flavor of URL.createObjectURL(), and having Blobs and Files added to the registry on-demand. I think this leads to more implementation complexity, and doesn't address the desire of charging Blobs and Files against quota.
Proposed solution
Let's add
create
factory methods toBlob
andFile
. The factor methods will take the same parameters as the corresponding constructors, and will returnPromise<Blob>
andPromise<File>
.The text was updated successfully, but these errors were encountered: