michael@0: /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ michael@0: /* vim: set sw=2 ts=8 et tw=80 ft=c: */ michael@0: michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: include protocol PHttpChannel; michael@0: include protocol PFTPChannel; michael@0: include protocol PRtspChannel; michael@0: include URIParams; michael@0: include InputStreamParams; michael@0: michael@0: using struct mozilla::void_t from "ipc/IPCMessageUtils.h"; michael@0: using RequestHeaderTuples from "mozilla/net/PHttpChannelParams.h"; michael@0: using struct nsHttpAtom from "nsHttp.h"; michael@0: michael@0: namespace mozilla { michael@0: namespace net { michael@0: michael@0: //----------------------------------------------------------------------------- michael@0: // HTTP IPDL structs michael@0: //----------------------------------------------------------------------------- michael@0: michael@0: struct HttpChannelOpenArgs michael@0: { michael@0: URIParams uri; michael@0: // - TODO: bug 571161: unclear if any HTTP channel clients ever michael@0: // set originalURI != uri (about:credits?); also not clear if michael@0: // chrome channel would ever need to know. Get rid of next arg? michael@0: OptionalURIParams original; michael@0: OptionalURIParams doc; michael@0: OptionalURIParams referrer; michael@0: OptionalURIParams apiRedirectTo; michael@0: uint32_t loadFlags; michael@0: RequestHeaderTuples requestHeaders; michael@0: nsCString requestMethod; michael@0: OptionalInputStreamParams uploadStream; michael@0: bool uploadStreamHasHeaders; michael@0: uint16_t priority; michael@0: uint8_t redirectionLimit; michael@0: bool allowPipelining; michael@0: bool forceAllowThirdPartyCookie; michael@0: bool resumeAt; michael@0: uint64_t startPos; michael@0: nsCString entityID; michael@0: bool chooseApplicationCache; michael@0: nsCString appCacheClientID; michael@0: bool allowSpdy; michael@0: OptionalFileDescriptorSet fds; michael@0: }; michael@0: michael@0: struct HttpChannelConnectArgs michael@0: { michael@0: uint32_t channelId; michael@0: }; michael@0: michael@0: union HttpChannelCreationArgs michael@0: { michael@0: HttpChannelOpenArgs; // For AsyncOpen: the common case. michael@0: HttpChannelConnectArgs; // Used for redirected-to channels michael@0: }; michael@0: michael@0: //----------------------------------------------------------------------------- michael@0: // FTP IPDL structs michael@0: //----------------------------------------------------------------------------- michael@0: michael@0: struct FTPChannelOpenArgs michael@0: { michael@0: URIParams uri; michael@0: uint64_t startPos; michael@0: nsCString entityID; michael@0: OptionalInputStreamParams uploadStream; michael@0: }; michael@0: michael@0: struct FTPChannelConnectArgs michael@0: { michael@0: uint32_t channelId; michael@0: }; michael@0: michael@0: union FTPChannelCreationArgs michael@0: { michael@0: FTPChannelOpenArgs; // For AsyncOpen: the common case. michael@0: FTPChannelConnectArgs; // Used for redirected-to channels michael@0: }; michael@0: michael@0: union ChannelDiverterArgs michael@0: { michael@0: PHttpChannel; michael@0: PFTPChannel; michael@0: }; michael@0: michael@0: //----------------------------------------------------------------------------- michael@0: // RTSP IPDL structs michael@0: //----------------------------------------------------------------------------- michael@0: michael@0: struct RtspChannelConnectArgs michael@0: { michael@0: URIParams uri; michael@0: uint32_t channelId; michael@0: }; michael@0: michael@0: } // namespace ipc michael@0: } // namespace mozilla