/* -*- 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