Bumping manifests a=b2g-bump
[gecko.git] / dom / ipc / PContentBridge.ipdl
blob1ed93e56bc2f23fea796b7390f0c0f7949a68c47
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* vim: set ts=2 et sw=2 tw=80: */
3 /* This Source Code Form is subject to the terms of the Mozilla Public
4  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
5  * You can obtain one at http://mozilla.org/MPL/2.0/. */
7 include protocol PBlob;
8 include protocol PBrowser;
9 include protocol PContent;
10 include protocol PJavaScript;
12 include DOMTypes;
13 include JavaScriptTypes;
14 include PTabContext;
16 using class IPC::Principal from "mozilla/dom/PermissionMessageUtils.h";
18 namespace mozilla {
19 namespace dom {
22  * PContentBridge allows us to represent a parent/child relationship between two
23  * child processes.  When a child process wants to open its own child, it asks
24  * the root process to create a new process and then bridge them.  The first
25  * child will allocate the PContentBridgeParent, and the newly opened child will
26  * allocate the PContentBridgeChild.  This protocol allows these processes to
27  * share PBrowsers and send messages to each other.
28  */
29 intr protocol PContentBridge
31     bridges PContent, PContent;
33     manages PBlob;
34     manages PBrowser;
35     manages PJavaScript;
37 parent:
38     sync SyncMessage(nsString aMessage, ClonedMessageData aData,
39                      CpowEntry[] aCpows, Principal aPrincipal)
40       returns (nsString[] retval);
41 both:
42     // Both the parent and the child can construct the PBrowser.
43     // See the comment in PContent::PBrowser().
44     async PBrowser(IPCTabContext context, uint32_t chromeFlags,
45                    uint64_t id, bool isForApp, bool isForBrowser);
47     async PBlob(BlobConstructorParams params);
49     async PJavaScript();
51     AsyncMessage(nsString aMessage, ClonedMessageData aData,
52                  CpowEntry[] aCpows, Principal aPrincipal);