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 (c68fe15a81fc)

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
/* -*- 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 PSocketProcess;
include protocol PFileDescriptorSet; // FIXME: bug #792908
include protocol PInputChannelThrottleQueue;

include IPCStream;
include NeckoChannelParams;

include "mozilla/net/NeckoMessageUtils.h";

using class mozilla::net::nsHttpRequestHead from "nsHttpRequestHead.h";
using class nsHttpHeaderArray from "nsHttpHeaderArray.h";
using mozilla::net::NetAddr from "mozilla/net/DNS.h";

namespace mozilla {
namespace net {

struct H2PushedStreamArg {
  PHttpTransaction transWithPushedStream;
  uint32_t pushedStreamId;
};

refcounted protocol PHttpTransaction
{
  manager PSocketProcess;

parent:
  async OnStartRequest(nsresult                   status,
                       nsHttpResponseHead?        responseHead,
                       nsCString                  securityInfoSerialization,
                       bool                       proxyConnectFailed,
                       TimingStructArgs           timings,
                       int32_t                    proxyConnectResponseCode,
                       uint8_t[]                  dataForSniffer);
  async OnTransportStatus(nsresult status,
                          int64_t progress,
                          int64_t progressMax);
  async OnDataAvailable(nsCString data,
                        uint64_t  offset,
                        uint32_t  count,
                        bool      dataSentToChildProcess);
  async OnStopRequest(nsresult status,
                      bool responseIsComplete,
                      int64_t transferSize,
                      TimingStructArgs timings,
                      nsHttpHeaderArray? responseTrailers,
                      bool hasStickyConn,
                      TransactionObserverResult? transactionObserverResult,
                      int64_t requestSize);
  async OnNetAddrUpdate(NetAddr selfAddr, NetAddr peerAddr, bool resolvedByTRR);
  async OnInitFailed(nsresult status);
  async OnH2PushStream(uint32_t pushedStreamId,
                       nsCString resourceUrl,
                       nsCString requestString);

child:
  async __delete__();
  async Init(uint32_t caps,
             HttpConnectionInfoCloneArgs aArgs,
             nsHttpRequestHead reqHeaders,
             IPCStream? requestBody,
             uint64_t reqContentLength,
             bool reqBodyIncludesHeaders,
             uint64_t topLevelOuterContentWindowId,
             uint8_t httpTrafficCategory,
             uint64_t requestContextID,
             uint32_t classOfService,
             uint32_t initialRwin,
             bool responseTimeoutEnabled,
             uint64_t channelId,
             bool hasTransactionObserver,
             H2PushedStreamArg? pushedStreamArg,
             PInputChannelThrottleQueue? throttleQueue,
             bool aIsDocumentLoad);

  async UpdateClassOfService(uint32_t classOfService);
  async CancelPump(nsresult status);
  async SuspendPump();
  async ResumePump();

  async SetDNSWasRefreshed();
  async DontReuseConnection();
  async SetH2WSConnRefTaken();
};

} // namespace net
} // namespace mozilla