Bug Summary

File:var/lib/jenkins/workspace/firefox-scan-build/obj-x86_64-pc-linux-gnu/ipc/ipdl/_ipdlheaders/mozilla/net/HttpChannelParams.h
Warning:line 40, column 7
Excessive padding in 'class mozilla::net::HttpChannelOnStartRequestArgs' (33 padding bytes, where 1 is optimal). Optimal fields order: securityInfo_, overrideReferrerInfo_, cacheEntryId_, altDataLength_, altDataType_, cookie_, selfAddr_, peerAddr_, timing_, loadInfoForwarder_, channelStatus_, effectiveTRRMode_, trrSkipReason_, cacheFetchCount_, cacheExpirationTime_, cacheKey_, multiPartID_, isFromCache_, isRacing_, cacheEntryAvailable_, deliveringAltData_, applyConversion_, isResolvedByTRR_, allRedirectsSameOrigin_, isFirstPartOfMultiPart_, isLastPartOfMultiPart_, openerPolicy_, shouldWaitForOnStartRequestSent_, dataFromSocketProcess_, hasHTTPSRR_, isProxyUsed_, redirectCount_, consider reordering the fields or adding explicit padding members

Annotated Source Code

Press '?' to see keyboard shortcuts

clang -cc1 -cc1 -triple x86_64-pc-linux-gnu -analyze -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name ContentChild.cpp -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=cplusplus -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -analyzer-config-compatibility-mode=true -mrelocation-model pic -pic-level 2 -fhalf-no-semantic-interposition -mframe-pointer=all -relaxed-aliasing -ffp-contract=off -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/var/lib/jenkins/workspace/firefox-scan-build/obj-x86_64-pc-linux-gnu/dom/ipc -resource-dir /usr/lib/llvm-16/lib/clang/16 -include /var/lib/jenkins/workspace/firefox-scan-build/config/gcc_hidden.h -include /var/lib/jenkins/workspace/firefox-scan-build/obj-x86_64-pc-linux-gnu/mozilla-config.h -I /var/lib/jenkins/workspace/firefox-scan-build/obj-x86_64-pc-linux-gnu/dist/stl_wrappers -I /var/lib/jenkins/workspace/firefox-scan-build/obj-x86_64-pc-linux-gnu/dist/system_wrappers -U _FORTIFY_SOURCE -D _FORTIFY_SOURCE=2 -D DEBUG=1 -D OS_POSIX=1 -D OS_LINUX=1 -D BIN_SUFFIX="" -D MOZ_APP_NAME="firefox" -D MOZ_HAS_MOZGLUE -D MOZILLA_INTERNAL_API -D IMPL_LIBXUL -D STATIC_EXPORTABLE_JS_API -I /var/lib/jenkins/workspace/firefox-scan-build/dom/ipc -I /var/lib/jenkins/workspace/firefox-scan-build/obj-x86_64-pc-linux-gnu/dom/ipc -I /var/lib/jenkins/workspace/firefox-scan-build/obj-x86_64-pc-linux-gnu/ipc/ipdl/_ipdlheaders -I /var/lib/jenkins/workspace/firefox-scan-build/ipc/chromium/src -I /var/lib/jenkins/workspace/firefox-scan-build/caps -I /var/lib/jenkins/workspace/firefox-scan-build/chrome -I /var/lib/jenkins/workspace/firefox-scan-build/docshell/base -I /var/lib/jenkins/workspace/firefox-scan-build/dom/base -I /var/lib/jenkins/workspace/firefox-scan-build/dom/bindings -I /var/lib/jenkins/workspace/firefox-scan-build/dom/events -I /var/lib/jenkins/workspace/firefox-scan-build/dom/filesystem -I /var/lib/jenkins/workspace/firefox-scan-build/dom/geolocation -I /var/lib/jenkins/workspace/firefox-scan-build/dom/media/webrtc -I /var/lib/jenkins/workspace/firefox-scan-build/dom/media/webspeech/synth/ipc -I /var/lib/jenkins/workspace/firefox-scan-build/dom/security -I /var/lib/jenkins/workspace/firefox-scan-build/dom/storage -I /var/lib/jenkins/workspace/firefox-scan-build/extensions/spellcheck/src -I /var/lib/jenkins/workspace/firefox-scan-build/gfx/2d -I /var/lib/jenkins/workspace/firefox-scan-build/hal/sandbox -I /var/lib/jenkins/workspace/firefox-scan-build/js/xpconnect/loader -I /var/lib/jenkins/workspace/firefox-scan-build/js/xpconnect/src -I /var/lib/jenkins/workspace/firefox-scan-build/layout/base -I /var/lib/jenkins/workspace/firefox-scan-build/media/webrtc -I /var/lib/jenkins/workspace/firefox-scan-build/netwerk/base -I /var/lib/jenkins/workspace/firefox-scan-build/netwerk/dns -I /var/lib/jenkins/workspace/firefox-scan-build/netwerk/protocol/http -I /var/lib/jenkins/workspace/firefox-scan-build/toolkit/components/printingui/ipc -I /var/lib/jenkins/workspace/firefox-scan-build/toolkit/crashreporter -I /var/lib/jenkins/workspace/firefox-scan-build/toolkit/xre -I /var/lib/jenkins/workspace/firefox-scan-build/uriloader/exthandler -I /var/lib/jenkins/workspace/firefox-scan-build/widget -I /var/lib/jenkins/workspace/firefox-scan-build/xpcom/base -I /var/lib/jenkins/workspace/firefox-scan-build/xpcom/threads -I /var/lib/jenkins/workspace/firefox-scan-build/modules/libjar -I /var/lib/jenkins/workspace/firefox-scan-build/obj-x86_64-pc-linux-gnu/dist/include -I /var/lib/jenkins/workspace/firefox-scan-build/obj-x86_64-pc-linux-gnu/dist/include/nspr -I /var/lib/jenkins/workspace/firefox-scan-build/obj-x86_64-pc-linux-gnu/dist/include/nss -D MOZILLA_CLIENT -I /usr/include/gtk-3.0/unix-print -I /usr/include/gtk-3.0 -I /usr/include/at-spi2-atk/2.0 -I /usr/include/at-spi-2.0 -I /usr/include/dbus-1.0 -I /usr/lib/x86_64-linux-gnu/dbus-1.0/include -I /usr/include/gtk-3.0 -I /usr/include/cairo -I /usr/include/libdrm -I /usr/include/pango-1.0 -I /usr/include/harfbuzz -I /usr/include/pango-1.0 -I /usr/include/fribidi -I /usr/include/atk-1.0 -I /usr/include/cairo -I /usr/include/pixman-1 -I /usr/include/freetype2 -I /usr/include/libpng16 -I /usr/include/gdk-pixbuf-2.0 -I /usr/include/gio-unix-2.0 -I /usr/include/libmount -I /usr/include/blkid -I /usr/include/uuid -I /usr/include/glib-2.0 -I /usr/lib/x86_64-linux-gnu/glib-2.0/include -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8 -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/x86_64-linux-gnu/c++/8 -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/backward -internal-isystem /usr/lib/llvm-16/lib/clang/16/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -Os -Wno-error=tautological-type-limit-compare -Wno-invalid-offsetof -Wno-range-loop-analysis -Wno-ambiguous-reversed-operator -Wno-error=deprecated -Wno-error=deprecated-anon-enum-enum-conversion -Wno-error=deprecated-enum-enum-conversion -Wno-error=deprecated-pragma -Wno-error=deprecated-this-capture -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wno-error=atomic-alignment -Wno-error=deprecated-builtins -Wno-psabi -Wno-unknown-warning-option -fdeprecated-macro -fdebug-compilation-dir=/var/lib/jenkins/workspace/firefox-scan-build/obj-x86_64-pc-linux-gnu/dom/ipc -ferror-limit 19 -stack-protector 2 -fstack-clash-protection -ftrivial-auto-var-init=pattern -fno-rtti -fgnuc-version=4.2.1 -fno-aligned-allocation -vectorize-loops -vectorize-slp -analyzer-checker optin.performance.Padding -analyzer-output=html -analyzer-config stable-report-filename=true -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/scan-build-2023-02-14-021730-2745-1 -x c++ /var/lib/jenkins/workspace/firefox-scan-build/dom/ipc/ContentChild.cpp
1//
2// Automatically generated by ipdlc.
3// Edit at your own risk
4//
5
6#ifndef HttpChannelParams_h
7#define HttpChannelParams_h
8
9#include "mozilla/Attributes.h"
10#include "IPCMessageStart.h"
11#include "mozilla/RefPtr.h"
12#include "nsString.h"
13#include "nsTArray.h"
14#include "nsTHashtable.h"
15#include "mozilla/MozPromise.h"
16#include "mozilla/OperatorNewExtensions.h"
17#include "mozilla/UniquePtr.h"
18#include "mozilla/ipc/ByteBuf.h"
19#include "mozilla/ipc/FileDescriptor.h"
20#include "mozilla/ipc/IPCForwards.h"
21#include "mozilla/ipc/Shmem.h"
22
23// Headers for typedefs
24#include "mozilla/net/DNS.h"
25#include "nsILoadInfo.h"
26#include "nsIReferrerInfo.h"
27#include "nsIRequest.h"
28#include "nsITRRSkipReason.h"
29#include "nsITransportSecurityInfo.h"
30#include "mozilla/dom/IPCServiceWorkerDescriptor.h"
31#include "mozilla/net/NeckoChannelParams.h"
32#include "mozilla/ipc/IPCStream.h"
33
34
35//-----------------------------------------------------------------------------
36// Declaration of the IPDL type |struct HttpChannelOnStartRequestArgs|
37//
38namespace mozilla {
39namespace net {
40class HttpChannelOnStartRequestArgs final
Excessive padding in 'class mozilla::net::HttpChannelOnStartRequestArgs' (33 padding bytes, where 1 is optimal). Optimal fields order: securityInfo_, overrideReferrerInfo_, cacheEntryId_, altDataLength_, altDataType_, cookie_, selfAddr_, peerAddr_, timing_, loadInfoForwarder_, channelStatus_, effectiveTRRMode_, trrSkipReason_, cacheFetchCount_, cacheExpirationTime_, cacheKey_, multiPartID_, isFromCache_, isRacing_, cacheEntryAvailable_, deliveringAltData_, applyConversion_, isResolvedByTRR_, allRedirectsSameOrigin_, isFirstPartOfMultiPart_, isLastPartOfMultiPart_, openerPolicy_, shouldWaitForOnStartRequestSent_, dataFromSocketProcess_, hasHTTPSRR_, isProxyUsed_, redirectCount_, consider reordering the fields or adding explicit padding members
41{
42private:
43 typedef mozilla::net::ParentLoadInfoForwarderArgs ParentLoadInfoForwarderArgs;
44 typedef mozilla::net::NetAddr NetAddr;
45 typedef mozilla::net::ResourceTimingStructArgs ResourceTimingStructArgs;
46 typedef nsILoadInfo::CrossOriginOpenerPolicy CrossOriginOpenerPolicy;
47 typedef nsIRequest::TRRMode TRRMode;
48 typedef mozilla::net::TRRSkippedReason TRRSkippedReason;
49
50public:
51 MOZ_IMPLICIT HttpChannelOnStartRequestArgs() :
52 channelStatus_(),
53 loadInfoForwarder_(),
54 isFromCache_(),
55 isRacing_(),
56 cacheEntryAvailable_(),
57 securityInfo_(),
58 selfAddr_(),
59 peerAddr_(),
60 altDataType_(),
61 deliveringAltData_(),
62 applyConversion_(),
63 isResolvedByTRR_(),
64 timing_(),
65 allRedirectsSameOrigin_(),
66 multiPartID_(),
67 isFirstPartOfMultiPart_(),
68 isLastPartOfMultiPart_(),
69 openerPolicy_(),
70 overrideReferrerInfo_(),
71 shouldWaitForOnStartRequestSent_(),
72 cookie_(),
73 dataFromSocketProcess_(),
74 hasHTTPSRR_(),
75 isProxyUsed_(),
76 effectiveTRRMode_(),
77 trrSkipReason_(),
78 cacheEntryId_(),
79 altDataLength_(),
80 cacheFetchCount_(),
81 cacheExpirationTime_(),
82 cacheKey_(),
83 redirectCount_()
84 {
85 }
86
87 MOZ_IMPLICIT HttpChannelOnStartRequestArgs(
88 const nsresult& _channelStatus,
89 const ParentLoadInfoForwarderArgs& _loadInfoForwarder,
90 const bool& _isFromCache,
91 const bool& _isRacing,
92 const bool& _cacheEntryAvailable,
93 const uint64_t& _cacheEntryId,
94 const uint32_t& _cacheFetchCount,
95 const uint32_t& _cacheExpirationTime,
96 nsITransportSecurityInfo* _securityInfo,
97 const NetAddr& _selfAddr,
98 const NetAddr& _peerAddr,
99 const uint8_t& _redirectCount,
100 const uint32_t& _cacheKey,
101 const nsCString& _altDataType,
102 const int64_t& _altDataLength,
103 const bool& _deliveringAltData,
104 const bool& _applyConversion,
105 const bool& _isResolvedByTRR,
106 const ResourceTimingStructArgs& _timing,
107 const bool& _allRedirectsSameOrigin,
108 const mozilla::Maybe<uint32_t>& _multiPartID,
109 const bool& _isFirstPartOfMultiPart,
110 const bool& _isLastPartOfMultiPart,
111 const CrossOriginOpenerPolicy& _openerPolicy,
112 nsIReferrerInfo* _overrideReferrerInfo,
113 const bool& _shouldWaitForOnStartRequestSent,
114 const nsCString& _cookie,
115 const bool& _dataFromSocketProcess,
116 const bool& _hasHTTPSRR,
117 const bool& _isProxyUsed,
118 const TRRMode& _effectiveTRRMode,
119 const TRRSkippedReason& _trrSkipReason) :
120 channelStatus_(_channelStatus),
121 loadInfoForwarder_(_loadInfoForwarder),
122 isFromCache_(_isFromCache),
123 isRacing_(_isRacing),
124 cacheEntryAvailable_(_cacheEntryAvailable),
125 securityInfo_(_securityInfo),
126 selfAddr_(_selfAddr),
127 peerAddr_(_peerAddr),
128 altDataType_(_altDataType),
129 deliveringAltData_(_deliveringAltData),
130 applyConversion_(_applyConversion),
131 isResolvedByTRR_(_isResolvedByTRR),
132 timing_(_timing),
133 allRedirectsSameOrigin_(_allRedirectsSameOrigin),
134 multiPartID_(_multiPartID),
135 isFirstPartOfMultiPart_(_isFirstPartOfMultiPart),
136 isLastPartOfMultiPart_(_isLastPartOfMultiPart),
137 openerPolicy_(_openerPolicy),
138 overrideReferrerInfo_(_overrideReferrerInfo),
139 shouldWaitForOnStartRequestSent_(_shouldWaitForOnStartRequestSent),
140 cookie_(_cookie),
141 dataFromSocketProcess_(_dataFromSocketProcess),
142 hasHTTPSRR_(_hasHTTPSRR),
143 isProxyUsed_(_isProxyUsed),
144 effectiveTRRMode_(_effectiveTRRMode),
145 trrSkipReason_(_trrSkipReason),
146 cacheEntryId_(_cacheEntryId),
147 altDataLength_(_altDataLength),
148 cacheFetchCount_(_cacheFetchCount),
149 cacheExpirationTime_(_cacheExpirationTime),
150 cacheKey_(_cacheKey),
151 redirectCount_(_redirectCount)
152 {
153 }
154
155 nsresult&
156 channelStatus()
157 {
158 return channelStatus_;
159 }
160 const nsresult&
161 channelStatus() const
162 {
163 return channelStatus_;
164 }
165
166 ParentLoadInfoForwarderArgs&
167 loadInfoForwarder()
168 {
169 return loadInfoForwarder_;
170 }
171 const ParentLoadInfoForwarderArgs&
172 loadInfoForwarder() const
173 {
174 return loadInfoForwarder_;
175 }
176
177 bool&
178 isFromCache()
179 {
180 return isFromCache_;
181 }
182 const bool&
183 isFromCache() const
184 {
185 return isFromCache_;
186 }
187
188 bool&
189 isRacing()
190 {
191 return isRacing_;
192 }
193 const bool&
194 isRacing() const
195 {
196 return isRacing_;
197 }
198
199 bool&
200 cacheEntryAvailable()
201 {
202 return cacheEntryAvailable_;
203 }
204 const bool&
205 cacheEntryAvailable() const
206 {
207 return cacheEntryAvailable_;
208 }
209
210 uint64_t&
211 cacheEntryId()
212 {
213 return cacheEntryId_;
214 }
215 const uint64_t&
216 cacheEntryId() const
217 {
218 return cacheEntryId_;
219 }
220
221 uint32_t&
222 cacheFetchCount()
223 {
224 return cacheFetchCount_;
225 }
226 const uint32_t&
227 cacheFetchCount() const
228 {
229 return cacheFetchCount_;
230 }
231
232 uint32_t&
233 cacheExpirationTime()
234 {
235 return cacheExpirationTime_;
236 }
237 const uint32_t&
238 cacheExpirationTime() const
239 {
240 return cacheExpirationTime_;
241 }
242
243 RefPtr<nsITransportSecurityInfo>&
244 securityInfo()
245 {
246 return securityInfo_;
247 }
248 nsITransportSecurityInfo*
249 securityInfo() const
250 {
251 return securityInfo_;
252 }
253
254 NetAddr&
255 selfAddr()
256 {
257 return selfAddr_;
258 }
259 const NetAddr&
260 selfAddr() const
261 {
262 return selfAddr_;
263 }
264
265 NetAddr&
266 peerAddr()
267 {
268 return peerAddr_;
269 }
270 const NetAddr&
271 peerAddr() const
272 {
273 return peerAddr_;
274 }
275
276 uint8_t&
277 redirectCount()
278 {
279 return redirectCount_;
280 }
281 const uint8_t&
282 redirectCount() const
283 {
284 return redirectCount_;
285 }
286
287 uint32_t&
288 cacheKey()
289 {
290 return cacheKey_;
291 }
292 const uint32_t&
293 cacheKey() const
294 {
295 return cacheKey_;
296 }
297
298 nsCString&
299 altDataType()
300 {
301 return altDataType_;
302 }
303 const nsCString&
304 altDataType() const
305 {
306 return altDataType_;
307 }
308
309 int64_t&
310 altDataLength()
311 {
312 return altDataLength_;
313 }
314 const int64_t&
315 altDataLength() const
316 {
317 return altDataLength_;
318 }
319
320 bool&
321 deliveringAltData()
322 {
323 return deliveringAltData_;
324 }
325 const bool&
326 deliveringAltData() const
327 {
328 return deliveringAltData_;
329 }
330
331 bool&
332 applyConversion()
333 {
334 return applyConversion_;
335 }
336 const bool&
337 applyConversion() const
338 {
339 return applyConversion_;
340 }
341
342 bool&
343 isResolvedByTRR()
344 {
345 return isResolvedByTRR_;
346 }
347 const bool&
348 isResolvedByTRR() const
349 {
350 return isResolvedByTRR_;
351 }
352
353 ResourceTimingStructArgs&
354 timing()
355 {
356 return timing_;
357 }
358 const ResourceTimingStructArgs&
359 timing() const
360 {
361 return timing_;
362 }
363
364 bool&
365 allRedirectsSameOrigin()
366 {
367 return allRedirectsSameOrigin_;
368 }
369 const bool&
370 allRedirectsSameOrigin() const
371 {
372 return allRedirectsSameOrigin_;
373 }
374
375 mozilla::Maybe<uint32_t>&
376 multiPartID()
377 {
378 return multiPartID_;
379 }
380 const mozilla::Maybe<uint32_t>&
381 multiPartID() const
382 {
383 return multiPartID_;
384 }
385
386 bool&
387 isFirstPartOfMultiPart()
388 {
389 return isFirstPartOfMultiPart_;
390 }
391 const bool&
392 isFirstPartOfMultiPart() const
393 {
394 return isFirstPartOfMultiPart_;
395 }
396
397 bool&
398 isLastPartOfMultiPart()
399 {
400 return isLastPartOfMultiPart_;
401 }
402 const bool&
403 isLastPartOfMultiPart() const
404 {
405 return isLastPartOfMultiPart_;
406 }
407
408 CrossOriginOpenerPolicy&
409 openerPolicy()
410 {
411 return openerPolicy_;
412 }
413 const CrossOriginOpenerPolicy&
414 openerPolicy() const
415 {
416 return openerPolicy_;
417 }
418
419 RefPtr<nsIReferrerInfo>&
420 overrideReferrerInfo()
421 {
422 return overrideReferrerInfo_;
423 }
424 nsIReferrerInfo*
425 overrideReferrerInfo() const
426 {
427 return overrideReferrerInfo_;
428 }
429
430 bool&
431 shouldWaitForOnStartRequestSent()
432 {
433 return shouldWaitForOnStartRequestSent_;
434 }
435 const bool&
436 shouldWaitForOnStartRequestSent() const
437 {
438 return shouldWaitForOnStartRequestSent_;
439 }
440
441 nsCString&
442 cookie()
443 {
444 return cookie_;
445 }
446 const nsCString&
447 cookie() const
448 {
449 return cookie_;
450 }
451
452 bool&
453 dataFromSocketProcess()
454 {
455 return dataFromSocketProcess_;
456 }
457 const bool&
458 dataFromSocketProcess() const
459 {
460 return dataFromSocketProcess_;
461 }
462
463 bool&
464 hasHTTPSRR()
465 {
466 return hasHTTPSRR_;
467 }
468 const bool&
469 hasHTTPSRR() const
470 {
471 return hasHTTPSRR_;
472 }
473
474 bool&
475 isProxyUsed()
476 {
477 return isProxyUsed_;
478 }
479 const bool&
480 isProxyUsed() const
481 {
482 return isProxyUsed_;
483 }
484
485 TRRMode&
486 effectiveTRRMode()
487 {
488 return effectiveTRRMode_;
489 }
490 const TRRMode&
491 effectiveTRRMode() const
492 {
493 return effectiveTRRMode_;
494 }
495
496 TRRSkippedReason&
497 trrSkipReason()
498 {
499 return trrSkipReason_;
500 }
501 const TRRSkippedReason&
502 trrSkipReason() const
503 {
504 return trrSkipReason_;
505 }
506
507private:
508 void
509 StaticAssertions() const;
510 nsresult channelStatus_;
511 ParentLoadInfoForwarderArgs loadInfoForwarder_;
512 bool isFromCache_;
513 bool isRacing_;
514 bool cacheEntryAvailable_;
515 RefPtr<nsITransportSecurityInfo> securityInfo_;
516 NetAddr selfAddr_;
517 NetAddr peerAddr_;
518 nsCString altDataType_;
519 bool deliveringAltData_;
520 bool applyConversion_;
521 bool isResolvedByTRR_;
522 ResourceTimingStructArgs timing_;
523 bool allRedirectsSameOrigin_;
524 mozilla::Maybe<uint32_t> multiPartID_;
525 bool isFirstPartOfMultiPart_;
526 bool isLastPartOfMultiPart_;
527 CrossOriginOpenerPolicy openerPolicy_;
528 RefPtr<nsIReferrerInfo> overrideReferrerInfo_;
529 bool shouldWaitForOnStartRequestSent_;
530 nsCString cookie_;
531 bool dataFromSocketProcess_;
532 bool hasHTTPSRR_;
533 bool isProxyUsed_;
534 TRRMode effectiveTRRMode_;
535 TRRSkippedReason trrSkipReason_;
536 uint64_t cacheEntryId_;
537 int64_t altDataLength_;
538 uint32_t cacheFetchCount_;
539 uint32_t cacheExpirationTime_;
540 uint32_t cacheKey_;
541 uint8_t redirectCount_;
542};
543} // namespace net
544} // namespace mozilla
545
546namespace IPC {
547template<>
548struct ParamTraits <mozilla::net::HttpChannelOnStartRequestArgs>
549{
550 typedef mozilla::net::HttpChannelOnStartRequestArgs paramType;
551 static void
552 Write(
553 IPC::MessageWriter* aWriter,
554 const paramType& aVar);
555 static mozilla::Maybe<paramType>
556 Read(IPC::MessageReader* aReader);
557};
558} // namespace IPC
559
560
561//-----------------------------------------------------------------------------
562// Declaration of the IPDL type |struct HttpChannelAltDataStream|
563//
564namespace mozilla {
565namespace net {
566class HttpChannelAltDataStream final
567{
568private:
569 typedef mozilla::ipc::IPCStream IPCStream;
570
571public:
572 MOZ_IMPLICIT HttpChannelAltDataStream() :
573 altDataInputStream_()
574 {
575 }
576
577 MOZ_IMPLICIT HttpChannelAltDataStream(const mozilla::Maybe<IPCStream>& _altDataInputStream) :
578 altDataInputStream_(_altDataInputStream)
579 {
580 }
581
582 mozilla::Maybe<IPCStream>&
583 altDataInputStream()
584 {
585 return altDataInputStream_;
586 }
587 const mozilla::Maybe<IPCStream>&
588 altDataInputStream() const
589 {
590 return altDataInputStream_;
591 }
592
593private:
594 mozilla::Maybe<IPCStream> altDataInputStream_;
595};
596} // namespace net
597} // namespace mozilla
598
599namespace IPC {
600template<>
601struct ParamTraits <mozilla::net::HttpChannelAltDataStream>
602{
603 typedef mozilla::net::HttpChannelAltDataStream paramType;
604 static void
605 Write(
606 IPC::MessageWriter* aWriter,
607 const paramType& aVar);
608 static mozilla::Maybe<paramType>
609 Read(IPC::MessageReader* aReader);
610};
611} // namespace IPC
612
613#endif // ifndef HttpChannelParams_h