summaryrefslogtreecommitdiffstats
path: root/netwerk/ipc/NeckoChannelParams.ipdlh
diff options
context:
space:
mode:
Diffstat (limited to 'netwerk/ipc/NeckoChannelParams.ipdlh')
-rw-r--r--netwerk/ipc/NeckoChannelParams.ipdlh196
1 files changed, 196 insertions, 0 deletions
diff --git a/netwerk/ipc/NeckoChannelParams.ipdlh b/netwerk/ipc/NeckoChannelParams.ipdlh
new file mode 100644
index 000000000..9365397d1
--- /dev/null
+++ b/netwerk/ipc/NeckoChannelParams.ipdlh
@@ -0,0 +1,196 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set sw=2 ts=8 et tw=80 ft=c: */
+
+/* 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 PHttpChannel;
+include protocol PFTPChannel;
+include protocol PRtspChannel;
+include protocol PSendStream;
+include BlobTypes;
+include URIParams;
+include IPCStream;
+include InputStreamParams;
+include PBackgroundSharedTypes;
+
+using mozilla::NeckoOriginAttributes from "mozilla/ipc/BackgroundUtils.h";
+using struct mozilla::void_t from "ipc/IPCMessageUtils.h";
+using RequestHeaderTuples from "mozilla/net/PHttpChannelParams.h";
+using struct nsHttpAtom from "nsHttp.h";
+using class nsHttpResponseHead from "nsHttpResponseHead.h";
+
+namespace mozilla {
+namespace net {
+
+//-----------------------------------------------------------------------------
+// LoadInfo IPDL structs
+//-----------------------------------------------------------------------------
+
+struct LoadInfoArgs
+{
+ OptionalPrincipalInfo requestingPrincipalInfo;
+ PrincipalInfo triggeringPrincipalInfo;
+ OptionalPrincipalInfo principalToInheritInfo;
+ uint32_t securityFlags;
+ uint32_t contentPolicyType;
+ uint32_t tainting;
+ bool upgradeInsecureRequests;
+ bool verifySignedContent;
+ bool enforceSRI;
+ bool forceInheritPrincipalDropped;
+ uint64_t innerWindowID;
+ uint64_t outerWindowID;
+ uint64_t parentOuterWindowID;
+ uint64_t frameOuterWindowID;
+ bool enforceSecurity;
+ bool initialSecurityCheckDone;
+ bool isInThirdPartyContext;
+ NeckoOriginAttributes originAttributes;
+ PrincipalInfo[] redirectChainIncludingInternalRedirects;
+ PrincipalInfo[] redirectChain;
+ nsCString[] corsUnsafeHeaders;
+ bool forcePreflight;
+ bool isPreflight;
+ bool forceHSTSPriming;
+ bool mixedContentWouldBlock;
+};
+
+/**
+ * Not every channel necessarily has a loadInfo attached.
+ */
+union OptionalLoadInfoArgs
+{
+ void_t;
+ LoadInfoArgs;
+};
+
+//-----------------------------------------------------------------------------
+// HTTP IPDL structs
+//-----------------------------------------------------------------------------
+
+union OptionalHttpResponseHead
+{
+ void_t;
+ nsHttpResponseHead;
+};
+
+struct CorsPreflightArgs
+{
+ nsCString[] unsafeHeaders;
+};
+
+union OptionalCorsPreflightArgs
+{
+ void_t;
+ CorsPreflightArgs;
+};
+
+struct HttpChannelOpenArgs
+{
+ URIParams uri;
+ // - TODO: bug 571161: unclear if any HTTP channel clients ever
+ // set originalURI != uri (about:credits?); also not clear if
+ // chrome channel would ever need to know. Get rid of next arg?
+ OptionalURIParams original;
+ OptionalURIParams doc;
+ OptionalURIParams referrer;
+ uint32_t referrerPolicy;
+ OptionalURIParams apiRedirectTo;
+ OptionalURIParams topWindowURI;
+ uint32_t loadFlags;
+ RequestHeaderTuples requestHeaders;
+ nsCString requestMethod;
+ OptionalIPCStream uploadStream;
+ bool uploadStreamHasHeaders;
+ uint16_t priority;
+ uint32_t classOfService;
+ uint8_t redirectionLimit;
+ bool allowPipelining;
+ bool allowSTS;
+ uint32_t thirdPartyFlags;
+ bool resumeAt;
+ uint64_t startPos;
+ nsCString entityID;
+ bool chooseApplicationCache;
+ nsCString appCacheClientID;
+ bool allowSpdy;
+ bool allowAltSvc;
+ bool beConservative;
+ OptionalLoadInfoArgs loadInfo;
+ OptionalHttpResponseHead synthesizedResponseHead;
+ nsCString synthesizedSecurityInfoSerialization;
+ uint32_t cacheKey;
+ nsCString requestContextID;
+ OptionalCorsPreflightArgs preflightArgs;
+ uint32_t initialRwin;
+ bool blockAuthPrompt;
+ bool suspendAfterSynthesizeResponse;
+ bool allowStaleCacheContent;
+ nsCString contentTypeHint;
+ nsCString channelId;
+ uint64_t contentWindowId;
+ nsCString preferredAlternativeType;
+};
+
+struct HttpChannelConnectArgs
+{
+ uint32_t registrarId;
+ bool shouldIntercept;
+};
+
+union HttpChannelCreationArgs
+{
+ HttpChannelOpenArgs; // For AsyncOpen: the common case.
+ HttpChannelConnectArgs; // Used for redirected-to channels
+};
+
+//-----------------------------------------------------------------------------
+// FTP IPDL structs
+//-----------------------------------------------------------------------------
+
+struct FTPChannelOpenArgs
+{
+ URIParams uri;
+ uint64_t startPos;
+ nsCString entityID;
+ OptionalInputStreamParams uploadStream;
+ OptionalLoadInfoArgs loadInfo;
+};
+
+struct FTPChannelConnectArgs
+{
+ uint32_t channelId;
+};
+
+union FTPChannelCreationArgs
+{
+ FTPChannelOpenArgs; // For AsyncOpen: the common case.
+ FTPChannelConnectArgs; // Used for redirected-to channels
+};
+
+struct HttpChannelDiverterArgs
+{
+ PHttpChannel mChannel;
+ bool mApplyConversion;
+};
+
+union ChannelDiverterArgs
+{
+ HttpChannelDiverterArgs;
+ PFTPChannel;
+};
+
+//-----------------------------------------------------------------------------
+// RTSP IPDL structs
+//-----------------------------------------------------------------------------
+
+struct RtspChannelConnectArgs
+{
+ URIParams uri;
+ uint32_t channelId;
+};
+
+} // namespace ipc
+} // namespace mozilla