summaryrefslogtreecommitdiffstats
path: root/ipc/glue/PSendStream.ipdl
diff options
context:
space:
mode:
Diffstat (limited to 'ipc/glue/PSendStream.ipdl')
-rw-r--r--ipc/glue/PSendStream.ipdl33
1 files changed, 33 insertions, 0 deletions
diff --git a/ipc/glue/PSendStream.ipdl b/ipc/glue/PSendStream.ipdl
new file mode 100644
index 000000000..8f171672b
--- /dev/null
+++ b/ipc/glue/PSendStream.ipdl
@@ -0,0 +1,33 @@
+/* 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 PContent;
+include protocol PContentBridge;
+
+namespace mozilla {
+namespace ipc {
+
+protocol PSendStream
+{
+ manager PBackground or PContent or PContentBridge;
+
+parent:
+ async Buffer(nsCString aBuffer);
+ async Close(nsresult aRv);
+
+child:
+ // The parent side has hit an error condition and has requested the child
+ // actor issue a Close() message. The close must be initiated by the child
+ // to avoid racing with an in-flight Buffer() message.
+ async RequestClose(nsresult aRv);
+
+ // Stream is always destroyed from the parent side. This occurs if the
+ // parent encounters an error while writing to its pipe or if the child
+ // signals the stream should close by SendClose().
+ async __delete__();
+};
+
+} // namespace ipc
+} // namespace mozilla