DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Mercurial (fddffdeab170)

VCS Links

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174
/* -*- 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 URIParams;
include InputStreamParams;
include PBackgroundSharedTypes;

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
{
  PrincipalInfo    requestingPrincipalInfo;
  PrincipalInfo    triggeringPrincipalInfo;
  uint32_t         securityFlags;
  uint32_t         contentPolicyType;
  bool             upgradeInsecureRequests;
  uint64_t         innerWindowID;
  uint64_t         outerWindowID;
  uint64_t         parentOuterWindowID;
  bool             enforceSecurity;
  bool             initialSecurityCheckDone;
  OriginAttributes originAttributes;
  PrincipalInfo[]  redirectChain;
};

/**
 * Not every channel necessarily has a loadInfo attached.
 */
union OptionalLoadInfoArgs
{
  void_t;
  LoadInfoArgs;
};

//-----------------------------------------------------------------------------
// HTTP IPDL structs
//-----------------------------------------------------------------------------

union OptionalHttpResponseHead
{
  void_t;
  nsHttpResponseHead;
};

struct CorsPreflightArgs
{
  bool          withCredentials;
  PrincipalInfo preflightPrincipal;
  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;
  OptionalInputStreamParams   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;
  OptionalFileDescriptorSet   fds;
  OptionalLoadInfoArgs        loadInfo;
  OptionalHttpResponseHead    synthesizedResponseHead;
  nsCString                   synthesizedSecurityInfoSerialization;
  uint32_t                    cacheKey;
  nsCString                   schedulingContextID;
  OptionalCorsPreflightArgs   preflightArgs;
  uint32_t                    initialRwin;
};

struct HttpChannelConnectArgs
{
  uint32_t channelId;
  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