tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

PHttpTransaction.ipdl (4660B)


      1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
      2 /* vim: set sw=2 ts=8 et tw=80 ft=cpp : */
      3 
      4 /* This Source Code Form is subject to the terms of the Mozilla Public
      5  * License, v. 2.0. If a copy of the MPL was not distributed with this
      6  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      7 
      8 include protocol PSocketProcess;
      9 include protocol PInputChannelThrottleQueue;
     10 
     11 include IPCStream;
     12 include NeckoChannelParams;
     13 
     14 include "mozilla/ipc/TransportSecurityInfoUtils.h";
     15 include "mozilla/net/NeckoMessageUtils.h";
     16 include "mozilla/net/ClassOfService.h";
     17 
     18 using class mozilla::net::nsHttpRequestHead from "nsHttpRequestHead.h";
     19 using class mozilla::net::nsHttpHeaderArray from "nsHttpHeaderArray.h";
     20 using mozilla::net::NetAddr from "mozilla/net/DNS.h";
     21 using mozilla::net::ClassOfService from "mozilla/net/ClassOfService.h";
     22 [RefCounted] using class nsITransportSecurityInfo from "nsITransportSecurityInfo.h";
     23 using mozilla::net::TRRSkippedReason from "nsITRRSkipReason.h";
     24 using nsIRequest::TRRMode from "nsIRequest.h";
     25 using nsILoadInfo::IPAddressSpace from "nsILoadInfo.h";
     26 using struct mozilla::net::LNAPerms from "mozilla/net/HttpTransactionShell.h";
     27 
     28 namespace mozilla {
     29 namespace net {
     30 
     31 struct NetworkAddressArg {
     32   NetAddr selfAddr;
     33   NetAddr peerAddr;
     34   bool resolvedByTRR;
     35   TRRMode mode;
     36   TRRSkippedReason trrSkipReason;
     37   bool echConfigUsed;
     38 };
     39 
     40 protocol PHttpTransaction
     41 {
     42   manager PSocketProcess;
     43 
     44 parent:
     45   async OnStartRequest(nsresult                            status,
     46                        nsHttpResponseHead?                 responseHead,
     47                        nullable nsITransportSecurityInfo   securityInfo,
     48                        bool                                proxyConnectFailed,
     49                        TimingStructArgs                    timings,
     50                        int32_t                             proxyConnectResponseCode,
     51                        uint8_t[]                           dataForSniffer,
     52                        nsCString?                          altSvcUsed,
     53                        bool                                dataToChildProcess,
     54                        bool                                restarted,
     55                        uint32_t                            HTTPSSVCReceivedStage,
     56                        bool                                supportsHttp3,
     57                        TRRMode trrMode,
     58                        TRRSkippedReason trrSkipReason,
     59                        uint32_t caps,
     60                        TimeStamp onStartRequestStart,
     61                        HttpConnectionInfoCloneArgs connInfoArgs, IPAddressSpace targetIpAddressSpace);
     62   async OnTransportStatus(nsresult status,
     63                           int64_t progress,
     64                           int64_t progressMax,
     65                           NetworkAddressArg? networkAddressArg);
     66   async OnDataAvailable(nsCString data,
     67                         uint64_t  offset,
     68                         uint32_t  count,
     69                         TimeStamp onDataAvailableStart);
     70   async OnStopRequest(nsresult status,
     71                       bool responseIsComplete,
     72                       int64_t transferSize,
     73                       TimingStructArgs timings,
     74                       nsHttpHeaderArray? responseTrailers,
     75                       TransactionObserverResult? transactionObserverResult,
     76                       TimeStamp lastActiveTabOptimization,
     77                       TimeStamp onStopRequestStart);
     78   async OnInitFailed(nsresult status);
     79   async EarlyHint(nsCString linkHeader, nsCString referrerPolicy, nsCString cspHeader);
     80 
     81 child:
     82   async __delete__();
     83   async Init(uint32_t caps,
     84              HttpConnectionInfoCloneArgs aArgs,
     85              nsHttpRequestHead reqHeaders,
     86              IPCStream? requestBody,
     87              uint64_t reqContentLength,
     88              bool reqBodyIncludesHeaders,
     89              uint64_t topLevelOuterContentWindowId,
     90              uint8_t httpTrafficCategory,
     91              uint64_t requestContextID,
     92              ClassOfService classOfService,
     93              uint32_t initialRwin,
     94              bool responseTimeoutEnabled,
     95              uint64_t channelId,
     96              bool hasTransactionObserver,
     97              PInputChannelThrottleQueue? throttleQueue,
     98              bool aIsDocumentLoad,
     99              IPAddressSpace aParentIPAddressSpace,
    100              LNAPerms aLnaPermissionStatus,
    101              TimeStamp aRedirectStart,
    102              TimeStamp aRedirectEnd);
    103 
    104   async CancelPump(nsresult status);
    105   async SuspendPump();
    106   async ResumePump();
    107 
    108   async SetDNSWasRefreshed();
    109   async DontReuseConnection();
    110   async SetH2WSConnRefTaken();
    111 };
    112 
    113 } // namespace net
    114 } // namespace mozilla