fune/dom/cache/PCacheStreamControl.ipdl
Nika Layzell 6720e65c4e Bug 1681529 - Part 11: Avoid using DelayedStart when serialzing the reply from SendOpenStream, r=asuth
Streams serialized with the default nsIInputStream serializer will be serialized
with delayedStart, meaning that when sent from the parent process to the content
process it will be serialized as a RemoteLazyInputStream.

In the specific case of SendOpenStream this causes issues, as the content
process code depends on the synchronous nature of nsIFileInputStream to allow it
to be wrapped in a SnappyUncompressInputStream, which requires a sync stream.

Relying on this property is not generally correct and only works because we know
only nsFileInputStream will be sent by the parent process. Other types of sync
streams may be received as async if they are sufficiently large, such as
nsStringInputStream.

Differential Revision: https://phabricator.services.mozilla.com/D103227
2021-02-04 18:13:22 +00:00

32 lines
751 B
Text

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
include protocol PBackground;
include protocol PFileDescriptorSet;
include protocol PChildToParentStream;
include protocol PParentToChildStream;
include IPCStream;
using struct nsID from "nsID.h";
namespace mozilla {
namespace dom {
namespace cache {
refcounted protocol PCacheStreamControl
{
manager PBackground;
parent:
async OpenStream(nsID aStreamId) returns(IPCStream? aStream);
async NoteClosed(nsID aStreamId);
child:
async CloseAll();
async __delete__();
};
} // namespace cache
} // namespace dom
} // namespace mozilla