Bug 1344204 - nsBufferedInputStream should be serializable/cloneable following the internal sub streams, r=smaug

This commit is contained in:
Andrea Marchesini 2017-03-08 07:48:37 +01:00
parent 2d8722e0b8
commit f2a07c0b1c
2 changed files with 14 additions and 1 deletions

View File

@ -282,7 +282,7 @@ NS_INTERFACE_MAP_BEGIN(nsBufferedInputStream)
NS_INTERFACE_MAP_ENTRY(nsIInputStream)
NS_INTERFACE_MAP_ENTRY(nsIBufferedInputStream)
NS_INTERFACE_MAP_ENTRY(nsIStreamBufferAccess)
NS_INTERFACE_MAP_ENTRY(nsIIPCSerializableInputStream)
NS_INTERFACE_MAP_ENTRY_CONDITIONAL(nsIIPCSerializableInputStream, IsIPCSerializable())
NS_IMPL_QUERY_CLASSINFO(nsBufferedInputStream)
NS_INTERFACE_MAP_END_INHERITING(nsBufferedStream)
@ -610,6 +610,17 @@ nsBufferedInputStream::ExpectedSerializedLength()
return Nothing();
}
bool
nsBufferedInputStream::IsIPCSerializable() const
{
if (!mStream) {
return true;
}
nsCOMPtr<nsIIPCSerializableInputStream> stream = do_QueryInterface(mStream);
return !!stream;
}
////////////////////////////////////////////////////////////////////////////////
// nsBufferedOutputStream

View File

@ -82,6 +82,8 @@ public:
protected:
virtual ~nsBufferedInputStream() {}
bool IsIPCSerializable() const;
NS_IMETHOD Fill() override;
NS_IMETHOD Flush() override { return NS_OK; } // no-op for input streams
};