summaryrefslogtreecommitdiffstats
path: root/netwerk/ipc/PSocketProcessBridge.ipdl
diff options
context:
space:
mode:
Diffstat (limited to 'netwerk/ipc/PSocketProcessBridge.ipdl')
-rw-r--r--netwerk/ipc/PSocketProcessBridge.ipdl48
1 files changed, 48 insertions, 0 deletions
diff --git a/netwerk/ipc/PSocketProcessBridge.ipdl b/netwerk/ipc/PSocketProcessBridge.ipdl
new file mode 100644
index 0000000000..36c808bfdc
--- /dev/null
+++ b/netwerk/ipc/PSocketProcessBridge.ipdl
@@ -0,0 +1,48 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=2 et sw=2 tw=80: */
+/* 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 PBackgroundDataBridge;
+
+#ifdef MOZ_WEBRTC
+include protocol PMediaTransport;
+#endif // MOZ_WEBRTC
+
+
+namespace mozilla {
+namespace net {
+
+/**
+ * PSocketProcessBridge is the IPC protocol between the main thread in
+ * the content process and the main thread in the socket process.
+ * We use this to create PBackgroundDataBridge and PMediaTransport protocols
+ * between content process and socket process.
+ * Once created, PSocketProcessBridgeChild is the actor that lives in
+ * content process and PSocketProcessBridgeParent lives in
+ * socket process.
+ */
+[NeedsOtherPid, ParentProc=Socket, ChildProc=Content]
+sync protocol PSocketProcessBridge
+{
+parent:
+ /**
+ * For setting up PBackgroundDataBridge protocol, we use this message to
+ * create a background task queue and the BackgroundDataBridgeParent actor in
+ * socket process.
+ */
+ async InitBackgroundDataBridge(Endpoint<PBackgroundDataBridgeParent> aEndpoint,
+ uint64_t aChannelID);
+
+#ifdef MOZ_WEBRTC
+ /**
+ * Similar to the above, this message is for PMediaTransport.
+ */
+ async InitMediaTransport(Endpoint<PMediaTransportParent> aEndpoint);
+#endif // MOZ_WEBRTC
+
+};
+
+}
+}