1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 #include "NullHttpChannel.h"
6 #include "nsContentUtils.h"
7 #include "nsContentSecurityManager.h"
8 #include "nsIScriptSecurityManager.h"
9 #include "nsIStreamListener.h"
14 NS_IMPL_ISUPPORTS(NullHttpChannel
, nsINullChannel
, nsIHttpChannel
,
15 nsIIdentChannel
, nsITimedChannel
)
17 NullHttpChannel::NullHttpChannel() {
18 mChannelCreationTime
= PR_Now();
19 mChannelCreationTimestamp
= TimeStamp::Now();
20 mAsyncOpenTime
= TimeStamp::Now();
23 NullHttpChannel::NullHttpChannel(nsIHttpChannel
* chan
)
24 : mAllRedirectsSameOrigin(false), mAllRedirectsPassTimingAllowCheck(false) {
25 nsIScriptSecurityManager
* ssm
= nsContentUtils::GetSecurityManager();
26 ssm
->GetChannelURIPrincipal(chan
, getter_AddRefs(mResourcePrincipal
));
28 Unused
<< chan
->GetResponseHeader("Timing-Allow-Origin"_ns
,
29 mTimingAllowOriginHeader
);
30 chan
->GetURI(getter_AddRefs(mURI
));
31 chan
->GetOriginalURI(getter_AddRefs(mOriginalURI
));
33 mChannelCreationTime
= PR_Now();
34 mChannelCreationTimestamp
= TimeStamp::Now();
35 mAsyncOpenTime
= TimeStamp::Now();
37 nsCOMPtr
<nsITimedChannel
> timedChanel(do_QueryInterface(chan
));
39 timedChanel
->GetInitiatorType(mInitiatorType
);
43 nsresult
NullHttpChannel::Init(nsIURI
* aURI
, uint32_t aCaps
,
44 nsProxyInfo
* aProxyInfo
,
45 uint32_t aProxyResolveFlags
, nsIURI
* aProxyURI
) {
51 //-----------------------------------------------------------------------------
52 // NullHttpChannel::nsIHttpChannel
53 //-----------------------------------------------------------------------------
56 NullHttpChannel::GetChannelId(uint64_t* aChannelId
) {
57 return NS_ERROR_NOT_IMPLEMENTED
;
61 NullHttpChannel::SetChannelId(uint64_t aChannelId
) {
62 return NS_ERROR_NOT_IMPLEMENTED
;
66 NullHttpChannel::GetTopLevelContentWindowId(uint64_t* aWindowId
) {
67 return NS_ERROR_NOT_IMPLEMENTED
;
71 NullHttpChannel::SetTopLevelContentWindowId(uint64_t aWindowId
) {
72 return NS_ERROR_NOT_IMPLEMENTED
;
76 NullHttpChannel::GetBrowserId(uint64_t*) { return NS_ERROR_NOT_IMPLEMENTED
; }
79 NullHttpChannel::SetBrowserId(uint64_t) { return NS_ERROR_NOT_IMPLEMENTED
; }
82 NullHttpChannel::GetTransferSize(uint64_t* aTransferSize
) {
83 return NS_ERROR_NOT_IMPLEMENTED
;
87 NullHttpChannel::GetRequestSize(uint64_t* aRequestSize
) {
88 return NS_ERROR_NOT_IMPLEMENTED
;
92 NullHttpChannel::GetDecodedBodySize(uint64_t* aDecodedBodySize
) {
93 return NS_ERROR_NOT_IMPLEMENTED
;
97 NullHttpChannel::GetRequestMethod(nsACString
& aRequestMethod
) {
98 return NS_ERROR_NOT_IMPLEMENTED
;
102 NullHttpChannel::SetRequestMethod(const nsACString
& aRequestMethod
) {
103 return NS_ERROR_NOT_IMPLEMENTED
;
107 NullHttpChannel::GetReferrerInfo(nsIReferrerInfo
** aReferrerInfo
) {
108 return NS_ERROR_NOT_IMPLEMENTED
;
112 NullHttpChannel::SetReferrerInfo(nsIReferrerInfo
* aReferrerInfo
) {
113 return NS_ERROR_NOT_IMPLEMENTED
;
117 NullHttpChannel::SetReferrerInfoWithoutClone(nsIReferrerInfo
* aReferrerInfo
) {
118 return NS_ERROR_NOT_IMPLEMENTED
;
122 NullHttpChannel::GetRequestHeader(const nsACString
& aHeader
,
123 nsACString
& _retval
) {
125 return NS_ERROR_NOT_IMPLEMENTED
;
129 NullHttpChannel::SetRequestHeader(const nsACString
& aHeader
,
130 const nsACString
& aValue
, bool aMerge
) {
131 return NS_ERROR_NOT_IMPLEMENTED
;
135 NullHttpChannel::SetNewReferrerInfo(const nsACString
& aUrl
,
136 nsIReferrerInfo::ReferrerPolicyIDL aPolicy
,
137 bool aSendReferrer
) {
138 return NS_ERROR_NOT_IMPLEMENTED
;
142 NullHttpChannel::SetEmptyRequestHeader(const nsACString
& aHeader
) {
143 return NS_ERROR_NOT_IMPLEMENTED
;
147 NullHttpChannel::VisitRequestHeaders(nsIHttpHeaderVisitor
* aVisitor
) {
148 return NS_ERROR_NOT_IMPLEMENTED
;
152 NullHttpChannel::VisitNonDefaultRequestHeaders(nsIHttpHeaderVisitor
* aVisitor
) {
153 return NS_ERROR_NOT_IMPLEMENTED
;
157 NullHttpChannel::GetAllowSTS(bool* aAllowSTS
) {
158 return NS_ERROR_NOT_IMPLEMENTED
;
162 NullHttpChannel::SetAllowSTS(bool aAllowSTS
) {
163 return NS_ERROR_NOT_IMPLEMENTED
;
167 NullHttpChannel::GetRedirectionLimit(uint32_t* aRedirectionLimit
) {
168 return NS_ERROR_NOT_IMPLEMENTED
;
172 NullHttpChannel::SetRedirectionLimit(uint32_t aRedirectionLimit
) {
173 return NS_ERROR_NOT_IMPLEMENTED
;
177 NullHttpChannel::GetResponseStatus(uint32_t* aResponseStatus
) {
178 return NS_ERROR_NOT_IMPLEMENTED
;
182 NullHttpChannel::GetResponseStatusText(nsACString
& aResponseStatusText
) {
183 return NS_ERROR_NOT_IMPLEMENTED
;
187 NullHttpChannel::GetRequestSucceeded(bool* aRequestSucceeded
) {
188 return NS_ERROR_NOT_IMPLEMENTED
;
192 NullHttpChannel::GetResponseHeader(const nsACString
& header
,
193 nsACString
& _retval
) {
195 return NS_ERROR_NOT_IMPLEMENTED
;
199 NullHttpChannel::SetResponseHeader(const nsACString
& header
,
200 const nsACString
& value
, bool merge
) {
201 return NS_ERROR_NOT_IMPLEMENTED
;
205 NullHttpChannel::VisitResponseHeaders(nsIHttpHeaderVisitor
* aVisitor
) {
206 return NS_ERROR_NOT_IMPLEMENTED
;
210 NullHttpChannel::GetOriginalResponseHeader(const nsACString
& header
,
211 nsIHttpHeaderVisitor
* aVisitor
) {
212 return NS_ERROR_NOT_IMPLEMENTED
;
216 NullHttpChannel::VisitOriginalResponseHeaders(nsIHttpHeaderVisitor
* aVisitor
) {
217 return NS_ERROR_NOT_IMPLEMENTED
;
221 NullHttpChannel::ShouldStripRequestBodyHeader(const nsACString
& aMethod
,
223 return NS_ERROR_NOT_IMPLEMENTED
;
227 NullHttpChannel::IsNoStoreResponse(bool* _retval
) {
228 return NS_ERROR_NOT_IMPLEMENTED
;
232 NullHttpChannel::IsNoCacheResponse(bool* _retval
) {
233 return NS_ERROR_NOT_IMPLEMENTED
;
237 NullHttpChannel::IsPrivateResponse(bool* _retval
) {
238 return NS_ERROR_NOT_IMPLEMENTED
;
242 NullHttpChannel::RedirectTo(nsIURI
* aNewURI
) {
243 return NS_ERROR_NOT_IMPLEMENTED
;
247 NullHttpChannel::UpgradeToSecure() { return NS_ERROR_NOT_IMPLEMENTED
; }
250 NullHttpChannel::GetRequestObserversCalled(bool* aCalled
) {
251 return NS_ERROR_NOT_IMPLEMENTED
;
255 NullHttpChannel::SetRequestObserversCalled(bool aCalled
) {
256 return NS_ERROR_NOT_IMPLEMENTED
;
260 NullHttpChannel::GetRequestContextID(uint64_t* _retval
) {
261 return NS_ERROR_NOT_IMPLEMENTED
;
265 NullHttpChannel::SetRequestContextID(uint64_t rcID
) {
266 return NS_ERROR_NOT_IMPLEMENTED
;
270 NullHttpChannel::GetProtocolVersion(nsACString
& aProtocolVersion
) {
271 return NS_ERROR_NOT_IMPLEMENTED
;
275 NullHttpChannel::GetEncodedBodySize(uint64_t* aEncodedBodySize
) {
276 return NS_ERROR_NOT_IMPLEMENTED
;
279 void NullHttpChannel::SetSource(
280 mozilla::UniquePtr
<mozilla::ProfileChunkedBuffer
> aSource
) {}
282 //-----------------------------------------------------------------------------
283 // NullHttpChannel::nsIChannel
284 //-----------------------------------------------------------------------------
287 NullHttpChannel::GetOriginalURI(nsIURI
** aOriginalURI
) {
288 *aOriginalURI
= do_AddRef(mOriginalURI
).take();
293 NullHttpChannel::SetOriginalURI(nsIURI
* aOriginalURI
) {
294 mOriginalURI
= aOriginalURI
;
299 NullHttpChannel::GetURI(nsIURI
** aURI
) {
300 *aURI
= do_AddRef(mURI
).take();
305 NullHttpChannel::GetOwner(nsISupports
** aOwner
) {
306 return NS_ERROR_NOT_IMPLEMENTED
;
310 NullHttpChannel::SetOwner(nsISupports
* aOwner
) {
311 return NS_ERROR_NOT_IMPLEMENTED
;
315 NullHttpChannel::GetNotificationCallbacks(
316 nsIInterfaceRequestor
** aNotificationCallbacks
) {
317 return NS_ERROR_NOT_IMPLEMENTED
;
321 NullHttpChannel::SetNotificationCallbacks(
322 nsIInterfaceRequestor
* aNotificationCallbacks
) {
323 return NS_ERROR_NOT_IMPLEMENTED
;
327 NullHttpChannel::GetSecurityInfo(nsITransportSecurityInfo
** aSecurityInfo
) {
328 return NS_ERROR_NOT_IMPLEMENTED
;
332 NullHttpChannel::GetContentType(nsACString
& aContentType
) {
333 return NS_ERROR_NOT_IMPLEMENTED
;
337 NullHttpChannel::SetContentType(const nsACString
& aContentType
) {
338 return NS_ERROR_NOT_IMPLEMENTED
;
342 NullHttpChannel::GetContentCharset(nsACString
& aContentCharset
) {
343 return NS_ERROR_NOT_IMPLEMENTED
;
347 NullHttpChannel::SetContentCharset(const nsACString
& aContentCharset
) {
348 return NS_ERROR_NOT_IMPLEMENTED
;
352 NullHttpChannel::GetContentLength(int64_t* aContentLength
) {
353 return NS_ERROR_NOT_IMPLEMENTED
;
357 NullHttpChannel::SetContentLength(int64_t aContentLength
) {
358 return NS_ERROR_NOT_IMPLEMENTED
;
362 NullHttpChannel::Open(nsIInputStream
** aStream
) {
363 nsCOMPtr
<nsIStreamListener
> listener
;
365 nsContentSecurityManager::doContentSecurityCheck(this, listener
);
366 NS_ENSURE_SUCCESS(rv
, rv
);
368 return NS_ERROR_NOT_IMPLEMENTED
;
372 NullHttpChannel::AsyncOpen(nsIStreamListener
* aListener
) {
373 nsCOMPtr
<nsIStreamListener
> listener
= aListener
;
375 nsContentSecurityManager::doContentSecurityCheck(this, listener
);
376 NS_ENSURE_SUCCESS(rv
, rv
);
377 return NS_ERROR_NOT_IMPLEMENTED
;
381 NullHttpChannel::GetContentDisposition(uint32_t* aContentDisposition
) {
382 return NS_ERROR_NOT_IMPLEMENTED
;
386 NullHttpChannel::SetContentDisposition(uint32_t aContentDisposition
) {
387 return NS_ERROR_NOT_IMPLEMENTED
;
391 NullHttpChannel::GetContentDispositionFilename(
392 nsAString
& aContentDispositionFilename
) {
393 return NS_ERROR_NOT_IMPLEMENTED
;
397 NullHttpChannel::SetContentDispositionFilename(
398 const nsAString
& aContentDispositionFilename
) {
399 return NS_ERROR_NOT_IMPLEMENTED
;
403 NullHttpChannel::GetContentDispositionHeader(
404 nsACString
& aContentDispositionHeader
) {
405 return NS_ERROR_NOT_IMPLEMENTED
;
409 NullHttpChannel::GetLoadInfo(nsILoadInfo
** aLoadInfo
) {
410 return NS_ERROR_NOT_IMPLEMENTED
;
414 NullHttpChannel::SetLoadInfo(nsILoadInfo
* aLoadInfo
) {
415 return NS_ERROR_NOT_IMPLEMENTED
;
418 //-----------------------------------------------------------------------------
419 // NullHttpChannel::nsIRequest
420 //-----------------------------------------------------------------------------
423 NullHttpChannel::GetName(nsACString
& aName
) { return NS_ERROR_NOT_IMPLEMENTED
; }
426 NullHttpChannel::IsPending(bool* _retval
) { return NS_ERROR_NOT_IMPLEMENTED
; }
429 NullHttpChannel::GetStatus(nsresult
* aStatus
) {
430 return NS_ERROR_NOT_IMPLEMENTED
;
433 NS_IMETHODIMP
NullHttpChannel::SetCanceledReason(const nsACString
& aReason
) {
434 return NS_ERROR_NOT_IMPLEMENTED
;
437 NS_IMETHODIMP
NullHttpChannel::GetCanceledReason(nsACString
& aReason
) {
438 return NS_ERROR_NOT_IMPLEMENTED
;
441 NS_IMETHODIMP
NullHttpChannel::CancelWithReason(nsresult aStatus
,
442 const nsACString
& aReason
) {
443 return NS_ERROR_NOT_IMPLEMENTED
;
447 NullHttpChannel::Cancel(nsresult aStatus
) { return NS_ERROR_NOT_IMPLEMENTED
; }
450 NullHttpChannel::GetCanceled(bool* aCanceled
) {
451 return NS_ERROR_NOT_IMPLEMENTED
;
455 NullHttpChannel::Suspend() { return NS_ERROR_NOT_IMPLEMENTED
; }
458 NullHttpChannel::Resume() { return NS_ERROR_NOT_IMPLEMENTED
; }
461 NullHttpChannel::GetLoadGroup(nsILoadGroup
** aLoadGroup
) {
462 return NS_ERROR_NOT_IMPLEMENTED
;
466 NullHttpChannel::SetLoadGroup(nsILoadGroup
* aLoadGroup
) {
467 return NS_ERROR_NOT_IMPLEMENTED
;
471 NullHttpChannel::GetLoadFlags(nsLoadFlags
* aLoadFlags
) {
472 return NS_ERROR_NOT_IMPLEMENTED
;
476 NullHttpChannel::GetTRRMode(nsIRequest::TRRMode
* aTRRMode
) {
477 return NS_ERROR_NOT_IMPLEMENTED
;
481 NullHttpChannel::SetTRRMode(nsIRequest::TRRMode aTRRMode
) {
482 return NS_ERROR_NOT_IMPLEMENTED
;
486 NullHttpChannel::SetLoadFlags(nsLoadFlags aLoadFlags
) {
487 return NS_ERROR_NOT_IMPLEMENTED
;
491 NullHttpChannel::GetIsDocument(bool* aIsDocument
) {
492 return NS_ERROR_NOT_IMPLEMENTED
;
495 //-----------------------------------------------------------------------------
496 // NullHttpChannel::nsITimedChannel
497 //-----------------------------------------------------------------------------
500 NullHttpChannel::GetTimingEnabled(bool* aTimingEnabled
) {
501 // We don't want to report timing for null channels.
502 *aTimingEnabled
= false;
507 NullHttpChannel::SetTimingEnabled(bool aTimingEnabled
) {
508 return NS_ERROR_NOT_IMPLEMENTED
;
512 NullHttpChannel::GetRedirectCount(uint8_t* aRedirectCount
) {
513 return NS_ERROR_NOT_IMPLEMENTED
;
517 NullHttpChannel::SetRedirectCount(uint8_t aRedirectCount
) {
518 return NS_ERROR_NOT_IMPLEMENTED
;
522 NullHttpChannel::GetInternalRedirectCount(uint8_t* aRedirectCount
) {
523 return NS_ERROR_NOT_IMPLEMENTED
;
527 NullHttpChannel::SetInternalRedirectCount(uint8_t aRedirectCount
) {
528 return NS_ERROR_NOT_IMPLEMENTED
;
532 NullHttpChannel::GetChannelCreation(mozilla::TimeStamp
* aChannelCreation
) {
533 *aChannelCreation
= mChannelCreationTimestamp
;
538 NullHttpChannel::SetChannelCreation(TimeStamp aValue
) {
539 MOZ_DIAGNOSTIC_ASSERT(!aValue
.IsNull());
540 TimeDuration adjust
= aValue
- mChannelCreationTimestamp
;
541 mChannelCreationTimestamp
= aValue
;
542 mChannelCreationTime
+= (PRTime
)adjust
.ToMicroseconds();
547 NullHttpChannel::GetAsyncOpen(mozilla::TimeStamp
* aAsyncOpen
) {
548 *aAsyncOpen
= mAsyncOpenTime
;
553 NullHttpChannel::SetAsyncOpen(TimeStamp aValue
) {
554 MOZ_DIAGNOSTIC_ASSERT(!aValue
.IsNull());
555 mAsyncOpenTime
= aValue
;
560 NullHttpChannel::GetLaunchServiceWorkerStart(mozilla::TimeStamp
* _retval
) {
562 *_retval
= mAsyncOpenTime
;
567 NullHttpChannel::SetLaunchServiceWorkerStart(mozilla::TimeStamp aTimeStamp
) {
572 NullHttpChannel::GetLaunchServiceWorkerEnd(mozilla::TimeStamp
* _retval
) {
574 *_retval
= mAsyncOpenTime
;
579 NullHttpChannel::SetLaunchServiceWorkerEnd(mozilla::TimeStamp aTimeStamp
) {
584 NullHttpChannel::GetDispatchFetchEventStart(mozilla::TimeStamp
* _retval
) {
586 *_retval
= mAsyncOpenTime
;
591 NullHttpChannel::SetDispatchFetchEventStart(mozilla::TimeStamp aTimeStamp
) {
596 NullHttpChannel::GetDispatchFetchEventEnd(mozilla::TimeStamp
* _retval
) {
598 *_retval
= mAsyncOpenTime
;
603 NullHttpChannel::SetDispatchFetchEventEnd(mozilla::TimeStamp aTimeStamp
) {
608 NullHttpChannel::GetHandleFetchEventStart(mozilla::TimeStamp
* _retval
) {
610 *_retval
= mAsyncOpenTime
;
615 NullHttpChannel::SetHandleFetchEventStart(mozilla::TimeStamp aTimeStamp
) {
620 NullHttpChannel::GetHandleFetchEventEnd(mozilla::TimeStamp
* _retval
) {
622 *_retval
= mAsyncOpenTime
;
627 NullHttpChannel::SetHandleFetchEventEnd(mozilla::TimeStamp aTimeStamp
) {
632 NullHttpChannel::GetDomainLookupStart(mozilla::TimeStamp
* aDomainLookupStart
) {
633 *aDomainLookupStart
= mAsyncOpenTime
;
638 NullHttpChannel::GetDomainLookupEnd(mozilla::TimeStamp
* aDomainLookupEnd
) {
639 *aDomainLookupEnd
= mAsyncOpenTime
;
644 NullHttpChannel::GetConnectStart(mozilla::TimeStamp
* aConnectStart
) {
645 *aConnectStart
= mAsyncOpenTime
;
650 NullHttpChannel::GetTcpConnectEnd(mozilla::TimeStamp
* aTcpConnectEnd
) {
651 *aTcpConnectEnd
= mAsyncOpenTime
;
656 NullHttpChannel::GetSecureConnectionStart(
657 mozilla::TimeStamp
* aSecureConnectionStart
) {
658 *aSecureConnectionStart
= mAsyncOpenTime
;
663 NullHttpChannel::GetConnectEnd(mozilla::TimeStamp
* aConnectEnd
) {
664 *aConnectEnd
= mAsyncOpenTime
;
669 NullHttpChannel::GetRequestStart(mozilla::TimeStamp
* aRequestStart
) {
670 *aRequestStart
= mAsyncOpenTime
;
675 NullHttpChannel::GetResponseStart(mozilla::TimeStamp
* aResponseStart
) {
676 *aResponseStart
= mAsyncOpenTime
;
681 NullHttpChannel::GetResponseEnd(mozilla::TimeStamp
* aResponseEnd
) {
682 *aResponseEnd
= mAsyncOpenTime
;
687 NullHttpChannel::GetRedirectStart(mozilla::TimeStamp
* aRedirectStart
) {
688 *aRedirectStart
= mAsyncOpenTime
;
693 NullHttpChannel::SetRedirectStart(mozilla::TimeStamp aRedirectStart
) {
694 return NS_ERROR_NOT_IMPLEMENTED
;
698 NullHttpChannel::GetRedirectEnd(mozilla::TimeStamp
* aRedirectEnd
) {
699 *aRedirectEnd
= mAsyncOpenTime
;
704 NullHttpChannel::SetRedirectEnd(mozilla::TimeStamp aRedirectEnd
) {
705 return NS_ERROR_NOT_IMPLEMENTED
;
709 NullHttpChannel::GetInitiatorType(nsAString
& aInitiatorType
) {
710 aInitiatorType
= mInitiatorType
;
715 NullHttpChannel::SetInitiatorType(const nsAString
& aInitiatorType
) {
716 mInitiatorType
= aInitiatorType
;
721 NullHttpChannel::GetAllRedirectsSameOrigin(bool* aAllRedirectsSameOrigin
) {
722 *aAllRedirectsSameOrigin
= mAllRedirectsSameOrigin
;
727 NullHttpChannel::SetAllRedirectsSameOrigin(bool aAllRedirectsSameOrigin
) {
728 return NS_ERROR_NOT_IMPLEMENTED
;
732 NullHttpChannel::GetAllRedirectsPassTimingAllowCheck(
733 bool* aAllRedirectsPassTimingAllowCheck
) {
734 *aAllRedirectsPassTimingAllowCheck
= mAllRedirectsPassTimingAllowCheck
;
739 NullHttpChannel::SetAllRedirectsPassTimingAllowCheck(
740 bool aAllRedirectsPassTimingAllowCheck
) {
741 return NS_ERROR_NOT_IMPLEMENTED
;
745 NullHttpChannel::BodyInfoAccessAllowedCheck(nsIPrincipal
* aOrigin
,
746 BodyInfoAccess
* _retval
) {
747 *_retval
= BodyInfoAccess::DISALLOWED
;
752 NullHttpChannel::TimingAllowCheck(nsIPrincipal
* aOrigin
, bool* _retval
) {
758 NullHttpChannel::GetCacheReadStart(mozilla::TimeStamp
* aCacheReadStart
) {
759 *aCacheReadStart
= mAsyncOpenTime
;
764 NullHttpChannel::GetCacheReadEnd(mozilla::TimeStamp
* aCacheReadEnd
) {
765 *aCacheReadEnd
= mAsyncOpenTime
;
770 NullHttpChannel::GetTransactionPending(mozilla::TimeStamp
* aRetVal
) {
771 *aRetVal
= mAsyncOpenTime
;
776 NullHttpChannel::GetIsMainDocumentChannel(bool* aValue
) {
782 NullHttpChannel::SetIsMainDocumentChannel(bool aValue
) {
783 return NS_ERROR_NOT_IMPLEMENTED
;
787 NullHttpChannel::LogBlockedCORSRequest(const nsAString
& aMessage
,
788 const nsACString
& aCategor
,
790 return NS_ERROR_NOT_IMPLEMENTED
;
794 NullHttpChannel::LogMimeTypeMismatch(const nsACString
& aMessageName
,
795 bool aWarning
, const nsAString
& aURL
,
796 const nsAString
& aContentType
) {
797 return NS_ERROR_NOT_IMPLEMENTED
;
801 NullHttpChannel::SetReportResourceTiming(bool enabled
) {
802 return NS_ERROR_NOT_IMPLEMENTED
;
806 NullHttpChannel::GetReportResourceTiming(bool* _retval
) {
807 return NS_ERROR_NOT_IMPLEMENTED
;
811 NullHttpChannel::GetServerTiming(nsIArray
** aServerTiming
) {
812 return NS_ERROR_NOT_IMPLEMENTED
;
816 NullHttpChannel::GetNativeServerTiming(
817 nsTArray
<nsCOMPtr
<nsIServerTiming
>>& aServerTiming
) {
818 return NS_ERROR_NOT_IMPLEMENTED
;
821 NS_IMETHODIMP
NullHttpChannel::SetClassicScriptHintCharset(
822 const nsAString
& aClassicScriptHintCharset
) {
823 return NS_ERROR_NOT_IMPLEMENTED
;
826 NS_IMETHODIMP
NullHttpChannel::GetClassicScriptHintCharset(
827 nsAString
& aClassicScriptHintCharset
) {
828 return NS_ERROR_NOT_IMPLEMENTED
;
831 NS_IMETHODIMP
NullHttpChannel::SetDocumentCharacterSet(
832 const nsAString
& aDocumentCharacterSet
) {
833 return NS_ERROR_NOT_IMPLEMENTED
;
836 NS_IMETHODIMP
NullHttpChannel::GetDocumentCharacterSet(
837 nsAString
& aDocumentCharacterSet
) {
838 return NS_ERROR_NOT_IMPLEMENTED
;
842 NullHttpChannel::SetRenderBlocking(bool aRenderBlocking
) {
843 return NS_ERROR_NOT_IMPLEMENTED
;
847 NullHttpChannel::GetRenderBlocking(bool* aRenderBlocking
) {
848 return NS_ERROR_NOT_IMPLEMENTED
;
851 #define IMPL_TIMING_ATTR(name) \
853 NullHttpChannel::Get##name##Time(PRTime* _retval) { \
856 if (stamp.IsNull()) { \
861 mChannelCreationTime + \
862 (PRTime)((stamp - mChannelCreationTimestamp).ToSeconds() * 1e6); \
866 IMPL_TIMING_ATTR(ChannelCreation
)
867 IMPL_TIMING_ATTR(AsyncOpen
)
868 IMPL_TIMING_ATTR(LaunchServiceWorkerStart
)
869 IMPL_TIMING_ATTR(LaunchServiceWorkerEnd
)
870 IMPL_TIMING_ATTR(DispatchFetchEventStart
)
871 IMPL_TIMING_ATTR(DispatchFetchEventEnd
)
872 IMPL_TIMING_ATTR(HandleFetchEventStart
)
873 IMPL_TIMING_ATTR(HandleFetchEventEnd
)
874 IMPL_TIMING_ATTR(DomainLookupStart
)
875 IMPL_TIMING_ATTR(DomainLookupEnd
)
876 IMPL_TIMING_ATTR(ConnectStart
)
877 IMPL_TIMING_ATTR(TcpConnectEnd
)
878 IMPL_TIMING_ATTR(SecureConnectionStart
)
879 IMPL_TIMING_ATTR(ConnectEnd
)
880 IMPL_TIMING_ATTR(RequestStart
)
881 IMPL_TIMING_ATTR(ResponseStart
)
882 IMPL_TIMING_ATTR(ResponseEnd
)
883 IMPL_TIMING_ATTR(CacheReadStart
)
884 IMPL_TIMING_ATTR(CacheReadEnd
)
885 IMPL_TIMING_ATTR(RedirectStart
)
886 IMPL_TIMING_ATTR(RedirectEnd
)
887 IMPL_TIMING_ATTR(TransactionPending
)
889 #undef IMPL_TIMING_ATTR
892 } // namespace mozilla