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