- From: Jeffrey Rennie <notifications@github.com>
- Date: Fri, 20 May 2022 12:14:43 -0700
- To: w3c/FileAPI <FileAPI@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <w3c/FileAPI/issues/143/1133231523@github.com>
> > You can message a `File` object to a worker.
>
> Oops, didn't know of that. Thanks for pointing out.
>
> After checking [the definition of File](https://w3c.github.io/FileAPI/#dfn-file), and [structuredserializeinternal in the HTML spec](https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal), I realised I had misunderstood `File`.
>
> > If that's not sufficient for some reason it might be best to open a separate issue for that as it seems different from reading a blob into an existing buffer.
>
> Since it's still connected to the topic "read Blob into an allocated ArrayBuffer", just a special case of it. So I decided to post it in the same issue.
Would someone be willing to confirm that the following line doesn't copy the underlying file contents?
```js
ctx.postMessage(file);
```
If I understand @Zhang-Junzhi's comments correctly, then they conclude that a file's contents isn't copied into another buffer as it is passed via `postMessage()`.
I read the two documents linked to above and don't understand them well enough to come to the same conclusion.
Context: People like to drop huge files (~1GB) into my web application, and I need to post them to workers. Copying buffers exceeds Chrome's memory limits:
```
DataCloneError
Failed to execute 'postMessage' on 'Worker': Data cannot be cloned, out of memory.
```
--
Reply to this email directly or view it on GitHub:
https://github.com/w3c/FileAPI/issues/143#issuecomment-1133231523
You are receiving this because you are subscribed to this thread.
Message ID: <w3c/FileAPI/issues/143/1133231523@github.com>
Received on Friday, 20 May 2022 19:14:55 UTC