Граф коммитов

16 Коммитов

Автор SHA1 Сообщение Дата
Andrea Marchesini ee5e12fec0 Bug 1397645 - Propagation of the IPCBlobInputStream slicing to the parent process, r=asuth 2017-09-11 17:29:44 +02:00
Andrea Marchesini 6287e1d209 Bug 1366316 - Separate thread for IPCBlobInputStream actors - part 4 - monitoring child processes, r=smaug 2017-05-31 07:41:11 +02:00
Andrea Marchesini 1ec87785af Bug 1366316 - Separate thread for IPCBlobInputStream actors - part 2 - callback stored, r=smaug 2017-05-31 07:41:10 +02:00
Andrea Marchesini dd8eddb26f Bug 1366316 - Separate thread for IPCBlobInputStream actors - part 1 - actor migration, r=smaug 2017-05-31 07:41:10 +02:00
Andrea Marchesini 10c6acd1a4 Bug 1359718 - Get rid of PBlob - part 5 - Fixing #includes, r=smaug 2017-05-23 18:06:52 +02:00
Sebastian Hengst 8164551943 Backed out changeset 2a2c16255a2c (bug 1359718) 2017-05-23 19:12:10 +02:00
Andrea Marchesini dc11620f89 Bug 1359718 - Get rid of PBlob - part 5 - Fixing #includes, r=smaug 2017-05-23 18:06:52 +02:00
Sebastian Hengst 65a516ae95 Backed out changeset 58cc2991c47a (bug 1359718) 2017-05-23 18:34:24 +02:00
Andrea Marchesini 5662e3fcaf Bug 1359718 - Get rid of PBlob - part 5 - Fixing #includes, r=smaug 2017-05-23 18:06:52 +02:00
Jan Varga 148a63cc3f Bug 1360185 - Use of IPCBlob in IndexedDB - part 4 - IPCBlob and sharing files when used by IDB, r=baku 2017-05-18 09:50:57 +02:00
Andrea Marchesini 0d165be73b Bug 1366011 - IPCBlob should not have race conditions between Send__delete__ and RecvStreamNeeded, r=smaug 2017-05-19 14:00:31 +02:00
Iris Hsiao 09507c3bc6 Backed out 3 changesets (bug 1366011, bug 1359357) for mochitest failures in test_ipcBlob_workers.html
Backed out changeset a20220d687d4 (bug 1359357)
Backed out changeset 9f71fb3f4d1e (bug 1359357)
Backed out changeset 70e5477cdda0 (bug 1366011)
2017-05-19 15:59:55 +08:00
Andrea Marchesini 318848612a Bug 1366011 - IPCBlob should not have race conditions between Send__delete__ and RecvStreamNeeded, r=smaug 2017-05-18 23:06:22 +02:00
Andrea Marchesini d6659b61c0 Bug 1353629 - PBlob refactoring - part 7 - IPCBlobInputStream must implement nsIAsyncInputStream, r=smaug
In order to retrieve data from an IPCBlobInputStream, it must be used as
nsIAsyncInputStream.
2017-04-24 12:09:40 +02:00
Andrea Marchesini b90e19e9d1 Bug 1353629 - PBlob refactoring - part 5 - IPCBlobInputStreamStorage, r=smaug
An IPCBlobInputStream can be sent back to the parent process (not implemented
in this patch). When this is done, we basically send only the internal ID.
From this ID, we can retrieve the original inputStream because any
IPCBlobInputStreamParent actor has previously registered it into a singleton:
IPCBlobInputStreamStorage.

So, if we have a IPCBlobInputStreamParent, we have an inputStream, and this
inputStream is known by IPCBlobInputStreamStorage. This will be useful in the
next patches.
2017-04-24 12:09:40 +02:00
Andrea Marchesini db0019c058 Bug 1353629 - PBlob refactoring - part 4 - IPCBlobInputStream, r=smaug
IPCBlobInputStream is a new type of nsIInputStream that is used only in content
process when a Blob is sent from parent to child. This inputStream is for now,
just cloneable.

When the parent process sends a Blob to a content process, it has the Blob and
its inputStream. With its inputStream it creates a IPCBlobInputStreamParent
actor. This actor keeps the inputStream alive for following uses (not part of
this patch).

On the child side we will have, of course, a IPCBlobInputStreamChild actor.
This actor is able to create a IPCBlobInputStream when CreateStream() is
called.  This means that 1 IPCBlobInputStreamChild can manage multiple
IPCBlobInputStreams each time one of them is cloned. When the last one of this
stream is released, the child actor sends a __delete__ request to the parent
side; the parent will be deleted, and the original inputStream, on the parent
side, will be released as well.

IPCBlobInputStream is a special inputStream because each method, except for
Available() fails. Basically, this inputStream cannot be used on the content
process for nothing else than knowing the size of the original stream.

In the following patches, I'll introduce an async way to use it.
2017-04-24 12:09:40 +02:00