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
|
/* 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 IPCStream;
include PBackgroundSharedTypes;
include PerformanceTimingTypes;
include NeckoChannelParams;
include "mozilla/dom/FetchIPCTypes.h";
include "mozilla/ipc/TransportSecurityInfoUtils.h";
using mozilla::dom::HeadersGuardEnum from "mozilla/dom/HeadersBinding.h";
using mozilla::dom::ReferrerPolicy from "mozilla/dom/ReferrerPolicyBinding.h";
using mozilla::dom::RequestCache from "mozilla/dom/RequestBinding.h";
using mozilla::dom::RequestCredentials from "mozilla/dom/RequestBinding.h";
using mozilla::dom::RequestRedirect from "mozilla/dom/RequestBinding.h";
using mozilla::dom::RequestPriority from "mozilla/dom/RequestBinding.h";
using mozilla::dom::ResponseType from "mozilla/dom/ResponseBinding.h";
using struct nsID from "nsID.h";
using mozilla::dom::FetchDriverObserver::EndReason from "mozilla/dom/FetchDriver.h";
using nsContentPolicyType from "nsIContentPolicy.h";
using nsILoadInfo::CrossOriginEmbedderPolicy from "nsILoadInfo.h";
[RefCounted] using class mozilla::RemoteLazyInputStream from "mozilla/RemoteLazyInputStream.h";
[RefCounted] using class nsITransportSecurityInfo from "nsITransportSecurityInfo.h";
namespace mozilla {
namespace dom {
struct HeadersEntry {
nsCString name;
nsCString value;
};
struct ParentToParentStream {
// Used as a key for RemoteLazyInputStreamStorage
nsID uuid;
};
union ParentToChildStream {
nullable RemoteLazyInputStream;
IPCStream;
};
struct ChildToParentStream {
IPCStream stream;
};
union BodyStreamVariant {
ParentToParentStream;
ParentToChildStream;
ChildToParentStream;
};
struct IPCInternalRequest {
nsCString method;
nsCString[] urlList;
HeadersGuardEnum headersGuard;
HeadersEntry[] headers;
BodyStreamVariant? body;
int64_t bodySize;
nsCString preferredAlternativeDataType;
nsContentPolicyType contentPolicyType;
int32_t internalPriority;
nsCString referrer;
ReferrerPolicy referrerPolicy;
ReferrerPolicy environmentReferrerPolicy;
RequestMode requestMode;
RequestCredentials requestCredentials;
RequestCache cacheMode;
RequestRedirect requestRedirect;
RequestPriority requestPriority;
nsString integrity;
bool keepalive;
nsCString fragment;
PrincipalInfo? principalInfo;
PrincipalInfo? interceptionTriggeringPrincipalInfo;
nsContentPolicyType interceptionContentPolicyType;
RedirectHistoryEntryInfo[] interceptionRedirectChain;
bool interceptionFromThirdParty;
CrossOriginEmbedderPolicy embedderPolicy;
};
struct InternalResponseMetadata {
ResponseType type;
nsCString[] urlList;
uint16_t status;
nsCString statusText;
HeadersGuardEnum headersGuard;
HeadersEntry[] headers;
nsresult errorCode;
nsCString alternativeDataType;
nullable nsITransportSecurityInfo securityInfo;
PrincipalInfo? principalInfo;
nsCString bodyBlobURISpec;
nsString bodyLocalPath;
RequestCredentials credentialsMode;
};
struct ParentToParentInternalResponse {
InternalResponseMetadata metadata;
ParentToParentStream? body;
int64_t bodySize;
ParentToParentStream? alternativeBody;
};
struct ParentToChildInternalResponse {
InternalResponseMetadata metadata;
ParentToChildStream? body;
int64_t bodySize;
ParentToChildStream? alternativeBody;
};
struct ChildToParentInternalResponse {
InternalResponseMetadata metadata;
ChildToParentStream? body;
int64_t bodySize;
ChildToParentStream? alternativeBody;
};
struct ResponseTiming {
IPCPerformanceTimingData timingData;
nsString initiatorType;
nsString entryName;
};
struct ResponseEndArgs {
EndReason endReason;
};
} // namespace ipc
} // namespace mozilla
|