diff options
Diffstat (limited to 'netwerk/ipc/PNecko.ipdl')
-rw-r--r-- | netwerk/ipc/PNecko.ipdl | 145 |
1 files changed, 145 insertions, 0 deletions
diff --git a/netwerk/ipc/PNecko.ipdl b/netwerk/ipc/PNecko.ipdl new file mode 100644 index 000000000..d9d88352c --- /dev/null +++ b/netwerk/ipc/PNecko.ipdl @@ -0,0 +1,145 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set sw=2 ts=8 et tw=80 ft=cpp : */ + +/* 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 PContent; +include protocol PHttpChannel; +include protocol PCookieService; +include protocol PBrowser; +include protocol PWyciwygChannel; +include protocol PFTPChannel; +include protocol PWebSocket; +include protocol PWebSocketEventListener; +include protocol PTCPSocket; +include protocol PTCPServerSocket; +include protocol PUDPSocket; +include protocol PDNSRequest; +include protocol PChannelDiverter; +include protocol PBlob; //FIXME: bug #792908 +include protocol PFileDescriptorSet; +include protocol PDataChannel; +include protocol PTransportProvider; +include protocol PSendStream; + +include protocol PRtspController; +include protocol PRtspChannel; +include URIParams; +include InputStreamParams; +include NeckoChannelParams; +include PBrowserOrId; +include protocol PAltDataOutputStream; + +using class IPC::SerializedLoadContext from "SerializedLoadContext.h"; +using mozilla::dom::TabId from "mozilla/dom/ipc/IdType.h"; +using class IPC::Principal from "mozilla/dom/PermissionMessageUtils.h"; + +namespace mozilla { +namespace net { + +//------------------------------------------------------------------- +nested(upto inside_cpow) sync protocol PNecko +{ + manager PContent; + manages PHttpChannel; + manages PCookieService; + manages PWyciwygChannel; + manages PFTPChannel; + manages PWebSocket; + manages PWebSocketEventListener; + manages PTCPSocket; + manages PTCPServerSocket; + manages PUDPSocket; + manages PDNSRequest; + manages PDataChannel; + manages PRtspController; + manages PRtspChannel; + manages PChannelDiverter; + manages PTransportProvider; + manages PAltDataOutputStream; + +parent: + async __delete__(); + + nested(inside_cpow) async PCookieService(); + async PHttpChannel(PBrowserOrId browser, + SerializedLoadContext loadContext, + HttpChannelCreationArgs args); + async PWyciwygChannel(); + async PFTPChannel(PBrowserOrId browser, SerializedLoadContext loadContext, + FTPChannelCreationArgs args); + + async PWebSocket(PBrowserOrId browser, SerializedLoadContext loadContext, + uint32_t aSerialID); + async PTCPServerSocket(uint16_t localPort, uint16_t backlog, bool useArrayBuffers); + async PUDPSocket(Principal principal, nsCString filter); + + async PDNSRequest(nsCString hostName, uint32_t flags, nsCString networkInterface); + + async PWebSocketEventListener(uint64_t aInnerWindowID); + + /* Predictor Methods */ + async PredPredict(OptionalURIParams targetURI, OptionalURIParams sourceURI, + uint32_t reason, SerializedLoadContext loadContext, + bool hasVerifier); + async PredLearn(URIParams targetURI, OptionalURIParams sourceURI, + uint32_t reason, SerializedLoadContext loadContext); + async PredReset(); + + async SpeculativeConnect(URIParams uri, Principal principal, bool anonymous); + async HTMLDNSPrefetch(nsString hostname, uint16_t flags); + async CancelHTMLDNSPrefetch(nsString hostname, uint16_t flags, nsresult reason); + + /** + * channelId is used to establish a connection between redirect channels in + * the parent and the child when we're redirecting to a data: URI. + */ + async PDataChannel(uint32_t channelId); + + async PRtspController(); + async PRtspChannel(RtspChannelConnectArgs args); + async PChannelDiverter(ChannelDiverterArgs channel); + + /** + * These are called from the child with the results of the auth prompt. + * callbackId is the id that was passed in PBrowser::AsyncAuthPrompt, + * corresponding to an nsIAuthPromptCallback + */ + async OnAuthAvailable(uint64_t callbackId, nsString user, + nsString password, nsString domain); + async OnAuthCancelled(uint64_t callbackId, bool userCancel); + + async RemoveRequestContext(nsCString rcid); + + async PAltDataOutputStream(nsCString type, PHttpChannel channel); + +child: + /* + * Bring up the http auth prompt for a nested remote mozbrowser. + * NestedFrameId is the id corresponding to the PBrowser. It is the same id + * that was passed to the PBrowserOrId param in to the PHttpChannel constructor + */ + async AsyncAuthPromptForNestedFrame(TabId nestedFrameId, nsCString uri, + nsString realm, uint64_t callbackId); + + /* Predictor Methods */ + async PredOnPredictPrefetch(URIParams uri, uint32_t httpStatus); + async PredOnPredictPreconnect(URIParams uri); + async PredOnPredictDNS(URIParams uri); + + async SpeculativeConnectRequest(); + + async PTransportProvider(); + +both: + // Actually we need PTCPSocket() for parent. But ipdl disallows us having different + // signatures on parent and child. So when constructing the parent side object, we just + // leave host/port unused. + async PTCPSocket(nsString host, uint16_t port); +}; + + +} // namespace net +} // namespace mozilla |