123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
- /* 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 PBlob;
- include protocol PBrowser;
- include protocol PContent;
- include protocol PJavaScript;
- include protocol PFileDescriptorSet;
- include protocol PSendStream;
- include DOMTypes;
- include JavaScriptTypes;
- include PTabContext;
- using class IPC::Principal from "mozilla/dom/PermissionMessageUtils.h";
- using mozilla::dom::TabId from "mozilla/dom/ipc/IdType.h";
- using mozilla::dom::ContentParentId from "mozilla/dom/ipc/IdType.h";
- using class mozilla::dom::MessagePort from "mozilla/dom/MessagePort.h";
- using class mozilla::dom::ipc::StructuredCloneData from "mozilla/dom/ipc/StructuredCloneData.h";
- namespace mozilla {
- namespace dom {
- /*
- * PContentBridge allows us to represent a parent/child relationship between two
- * child processes. When a child process wants to open its own child, it asks
- * the root process to create a new process and then bridge them. The first
- * child will allocate the PContentBridgeParent, and the newly opened child will
- * allocate the PContentBridgeChild. This protocol allows these processes to
- * share PBrowsers and send messages to each other.
- */
- nested(upto inside_cpow) sync protocol PContentBridge
- {
- bridges PContent, PContent;
- manages PBlob;
- manages PBrowser;
- manages PFileDescriptorSet;
- manages PJavaScript;
- manages PSendStream;
- parent:
- sync SyncMessage(nsString aMessage, ClonedMessageData aData,
- CpowEntry[] aCpows, Principal aPrincipal)
- returns (StructuredCloneData[] retval);
- async PJavaScript();
- async PSendStream();
- both:
- // Both the parent and the child can construct the PBrowser.
- // See the comment in PContent::PBrowser().
- async PBrowser(TabId tabId, IPCTabContext context, uint32_t chromeFlags,
- ContentParentId cpId, bool isForApp, bool isForBrowser);
- async PBlob(BlobConstructorParams params);
- async PFileDescriptorSet(FileDescriptor fd);
- async AsyncMessage(nsString aMessage, CpowEntry[] aCpows,
- Principal aPrincipal, ClonedMessageData aData);
- };
- }
- }
|