--- a/dom/base/EventSource.cpp
+++ b/dom/base/EventSource.cpp
@@ -990,28 +990,32 @@ EventSourceImpl::GetBaseURI(nsIURI** aBa
return NS_OK;
}
void
EventSourceImpl::SetupHttpChannel()
{
AssertIsOnMainThread();
MOZ_ASSERT(!IsShutDown());
- mHttpChannel->SetRequestMethod(NS_LITERAL_CSTRING("GET"));
+ DebugOnly<nsresult> rv =
+ mHttpChannel->SetRequestMethod(NS_LITERAL_CSTRING("GET"));
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
/* set the http request headers */
- mHttpChannel->SetRequestHeader(NS_LITERAL_CSTRING("Accept"),
+ rv = mHttpChannel->SetRequestHeader(NS_LITERAL_CSTRING("Accept"),
NS_LITERAL_CSTRING(TEXT_EVENT_STREAM), false);
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
// LOAD_BYPASS_CACHE already adds the Cache-Control: no-cache header
if (!mLastEventID.IsEmpty()) {
- mHttpChannel->SetRequestHeader(NS_LITERAL_CSTRING("Last-Event-ID"),
+ rv = mHttpChannel->SetRequestHeader(NS_LITERAL_CSTRING("Last-Event-ID"),
NS_ConvertUTF16toUTF8(mLastEventID), false);
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
}
}
nsresult
EventSourceImpl::SetupReferrerPolicy()
{
AssertIsOnMainThread();
MOZ_ASSERT(!IsShutDown());
--- a/dom/base/Navigator.cpp
+++ b/dom/base/Navigator.cpp
@@ -1337,17 +1337,18 @@ Navigator::SendBeaconInternal(const nsAS
}
nsCOMPtr<nsIHttpChannel> httpChannel = do_QueryInterface(channel);
if (!httpChannel) {
// Beacon spec only supports HTTP requests at this time
aRv.Throw(NS_ERROR_DOM_BAD_URI);
return false;
}
- httpChannel->SetReferrer(documentURI);
+ rv = httpChannel->SetReferrer(documentURI);
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
nsCOMPtr<nsIInputStream> in;
nsAutoCString contentTypeWithCharset;
nsAutoCString charset;
uint64_t length = 0;
if (aBody) {
aRv = aBody->GetAsStream(getter_AddRefs(in), &length,
@@ -1367,17 +1368,18 @@ Navigator::SendBeaconInternal(const nsAS
aRv.Throw(NS_ERROR_FAILURE);
return false;
}
uploadChannel->ExplicitSetUploadStream(in, contentTypeWithCharset, length,
NS_LITERAL_CSTRING("POST"),
false);
} else {
- httpChannel->SetRequestMethod(NS_LITERAL_CSTRING("POST"));
+ rv = httpChannel->SetRequestMethod(NS_LITERAL_CSTRING("POST"));
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
}
nsCOMPtr<nsISupportsPriority> p = do_QueryInterface(channel);
if (p) {
p->SetPriority(nsISupportsPriority::PRIORITY_LOWEST);
}
nsCOMPtr<nsIClassOfService> cos(do_QueryInterface(channel));
--- a/dom/base/nsDocument.cpp
+++ b/dom/base/nsDocument.cpp
@@ -2633,21 +2633,21 @@ nsDocument::InitCSP(nsIChannel* aChannel
nsCOMPtr<nsIHttpChannel> httpChannel;
nsresult rv = GetHttpChannelHelper(aChannel, getter_AddRefs(httpChannel));
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
if (httpChannel) {
- httpChannel->GetResponseHeader(
+ Unused << httpChannel->GetResponseHeader(
NS_LITERAL_CSTRING("content-security-policy"),
tCspHeaderValue);
- httpChannel->GetResponseHeader(
+ Unused << httpChannel->GetResponseHeader(
NS_LITERAL_CSTRING("content-security-policy-report-only"),
tCspROHeaderValue);
}
NS_ConvertASCIItoUTF16 cspHeaderValue(tCspHeaderValue);
NS_ConvertASCIItoUTF16 cspROHeaderValue(tCspROHeaderValue);
// Check if this is a document from a WebExtension.
nsString addonId;
@@ -4791,17 +4791,18 @@ nsDocument::SetScriptGlobalObject(nsIScr
if (csp) {
static_cast<nsCSPContext*>(csp.get())->flushConsoleMessages();
}
nsCOMPtr<nsIHttpChannelInternal> internalChannel =
do_QueryInterface(GetChannel());
if (internalChannel) {
nsCOMArray<nsISecurityConsoleMessage> messages;
- internalChannel->TakeAllSecurityMessages(messages);
+ DebugOnly<nsresult> rv = internalChannel->TakeAllSecurityMessages(messages);
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
SendToConsole(messages);
}
// Set our visibility state, but do not fire the event. This is correct
// because either we're coming out of bfcache (in which case IsVisible() will
// still test false at this point and no state change will happen) or we're
// doing the initial document load and don't want to fire the event for this
// change.
--- a/dom/base/nsObjectLoadingContent.cpp
+++ b/dom/base/nsObjectLoadingContent.cpp
@@ -2594,18 +2594,19 @@ nsObjectLoadingContent::OpenChannel()
nsCOMPtr<nsILoadInfo> loadinfo = chan->GetLoadInfo();
NS_ENSURE_STATE(loadinfo);
loadinfo->SetPrincipalToInherit(thisContent->NodePrincipal());
}
// Referrer
nsCOMPtr<nsIHttpChannel> httpChan(do_QueryInterface(chan));
if (httpChan) {
- httpChan->SetReferrerWithPolicy(doc->GetDocumentURI(),
- doc->GetReferrerPolicy());
+ rv = httpChan->SetReferrerWithPolicy(doc->GetDocumentURI(),
+ doc->GetReferrerPolicy());
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
// Set the initiator type
nsCOMPtr<nsITimedChannel> timedChannel(do_QueryInterface(httpChan));
if (timedChannel) {
timedChannel->SetInitiatorType(thisContent->LocalName());
}
}
--- a/dom/base/nsScriptLoader.cpp
+++ b/dom/base/nsScriptLoader.cpp
@@ -1293,25 +1293,28 @@ nsScriptLoader::StartLoad(nsScriptLoadRe
// other scripts are neither blocked nor prioritized unless marked deferred
cos->AddClassFlags(nsIClassOfService::Unblocked);
}
}
nsCOMPtr<nsIHttpChannel> httpChannel(do_QueryInterface(channel));
if (httpChannel) {
// HTTP content negotation has little value in this context.
- httpChannel->SetRequestHeader(NS_LITERAL_CSTRING("Accept"),
- NS_LITERAL_CSTRING("*/*"),
- false);
- httpChannel->SetReferrerWithPolicy(mDocument->GetDocumentURI(),
- aRequest->mReferrerPolicy);
+ rv = httpChannel->SetRequestHeader(NS_LITERAL_CSTRING("Accept"),
+ NS_LITERAL_CSTRING("*/*"),
+ false);
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
+ rv = httpChannel->SetReferrerWithPolicy(mDocument->GetDocumentURI(),
+ aRequest->mReferrerPolicy);
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
nsCOMPtr<nsIHttpChannelInternal> internalChannel(do_QueryInterface(httpChannel));
if (internalChannel) {
- internalChannel->SetIntegrityMetadata(aRequest->mIntegrity.GetIntegrityString());
+ rv = internalChannel->SetIntegrityMetadata(aRequest->mIntegrity.GetIntegrityString());
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
}
}
OriginAttributes attrs;
attrs.Inherit(mDocument->NodePrincipal()->OriginAttributesRef());
mozilla::net::PredictorLearn(aRequest->mURI, mDocument->GetDocumentURI(),
nsINetworkPredictor::LEARN_LOAD_SUBRESOURCE, attrs);
--- a/dom/base/nsSyncLoadService.cpp
+++ b/dom/base/nsSyncLoadService.cpp
@@ -138,25 +138,27 @@ nsSyncLoader::LoadDocument(nsIChannel* a
NS_ENSURE_ARG(aChannel);
NS_ENSURE_ARG_POINTER(aResult);
*aResult = nullptr;
nsresult rv = NS_OK;
mChannel = aChannel;
nsCOMPtr<nsIHttpChannel> http = do_QueryInterface(mChannel);
if (http) {
- http->SetRequestHeader(NS_LITERAL_CSTRING("Accept"),
- NS_LITERAL_CSTRING("text/xml,application/xml,application/xhtml+xml,*/*;q=0.1"),
- false);
+ rv = http->SetRequestHeader(NS_LITERAL_CSTRING("Accept"),
+ NS_LITERAL_CSTRING("text/xml,application/xml,application/xhtml+xml,*/*;q=0.1"),
+ false);
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
nsCOMPtr<nsILoadInfo> loadInfo = aChannel->GetLoadInfo();
if (loadInfo) {
nsCOMPtr<nsIURI> loaderUri;
loadInfo->TriggeringPrincipal()->GetURI(getter_AddRefs(loaderUri));
if (loaderUri) {
- http->SetReferrerWithPolicy(loaderUri, aReferrerPolicy);
+ rv = http->SetReferrerWithPolicy(loaderUri, aReferrerPolicy);
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
}
}
}
// Hook us up to listen to redirects and the like.
// Do this before setting up the cross-site proxy since
// that installs its own proxies.
mChannel->SetNotificationCallbacks(this);
--- a/dom/fetch/FetchDriver.cpp
+++ b/dom/fetch/FetchDriver.cpp
@@ -293,21 +293,25 @@ FetchDriver::HttpFetch()
// Auth may require prompting, we don't support it yet.
// The next patch in this same bug prevents this from aborting the request.
// Credentials checks for CORS are handled by nsCORSListenerProxy,
nsCOMPtr<nsIHttpChannelInternal> internalChan = do_QueryInterface(httpChan);
// Conversion between enumerations is safe due to static asserts in
// dom/workers/ServiceWorkerManager.cpp
- internalChan->SetCorsMode(static_cast<uint32_t>(mRequest->Mode()));
- internalChan->SetRedirectMode(static_cast<uint32_t>(mRequest->GetRedirectMode()));
+ rv = internalChan->SetCorsMode(static_cast<uint32_t>(mRequest->Mode()));
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
+ rv = internalChan->SetRedirectMode(static_cast<uint32_t>(mRequest->GetRedirectMode()));
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
mRequest->MaybeSkipCacheIfPerformingRevalidation();
- internalChan->SetFetchCacheMode(static_cast<uint32_t>(mRequest->GetCacheMode()));
- internalChan->SetIntegrityMetadata(mRequest->GetIntegrity());
+ rv = internalChan->SetFetchCacheMode(static_cast<uint32_t>(mRequest->GetCacheMode()));
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
+ rv = internalChan->SetIntegrityMetadata(mRequest->GetIntegrity());
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
}
// Step 5. Proxy authentication will be handled by Necko.
// Continue setting up 'HTTPRequest'. Content-Type and body data.
nsCOMPtr<nsIUploadChannel2> uploadChan = do_QueryInterface(chan);
if (uploadChan) {
nsAutoCString contentType;
@@ -446,30 +450,32 @@ FetchDriver::OnStartRequest(nsIRequest*
bool foundOpaqueRedirect = false;
int64_t contentLength = InternalResponse::UNKNOWN_BODY_SIZE;
rv = channel->GetContentLength(&contentLength);
MOZ_ASSERT_IF(NS_FAILED(rv), contentLength == InternalResponse::UNKNOWN_BODY_SIZE);
if (httpChannel) {
uint32_t responseStatus;
- httpChannel->GetResponseStatus(&responseStatus);
+ rv = httpChannel->GetResponseStatus(&responseStatus);
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
if (mozilla::net::nsHttpChannel::IsRedirectStatus(responseStatus)) {
if (mRequest->GetRedirectMode() == RequestRedirect::Error) {
FailWithNetworkError();
return NS_BINDING_FAILED;
}
if (mRequest->GetRedirectMode() == RequestRedirect::Manual) {
foundOpaqueRedirect = true;
}
}
nsAutoCString statusText;
- httpChannel->GetResponseStatusText(statusText);
+ rv = httpChannel->GetResponseStatusText(statusText);
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
response = new InternalResponse(responseStatus, statusText);
response->Headers()->FillResponseHeaders(httpChannel);
// If Content-Encoding or Transfer-Encoding headers are set, then the actual
// Content-Length (which refer to the decoded data) is obscured behind the encodings.
ErrorResult result;
@@ -734,18 +740,18 @@ FetchDriver::AsyncOnChannelRedirect(nsIC
nsCOMPtr<nsIHttpChannel> httpChannel = do_QueryInterface(aNewChannel);
if (httpChannel) {
SetRequestHeaders(httpChannel);
}
nsCOMPtr<nsIHttpChannel> oldHttpChannel = do_QueryInterface(aOldChannel);
nsAutoCString tRPHeaderCValue;
if (oldHttpChannel) {
- oldHttpChannel->GetResponseHeader(NS_LITERAL_CSTRING("referrer-policy"),
- tRPHeaderCValue);
+ Unused << oldHttpChannel->GetResponseHeader(NS_LITERAL_CSTRING("referrer-policy"),
+ tRPHeaderCValue);
}
// "HTTP-redirect fetch": step 14 "Append locationURL to request's URL list."
nsCOMPtr<nsIURI> uri;
MOZ_ALWAYS_SUCCEEDS(aNewChannel->GetURI(getter_AddRefs(uri)));
nsCOMPtr<nsIURI> uriClone;
nsresult rv = uri->CloneIgnoringRef(getter_AddRefs(uriClone));
@@ -831,32 +837,40 @@ FetchDriver::SetRequestHeaders(nsIHttpCh
AutoTArray<InternalHeaders::Entry, 5> headers;
mRequest->Headers()->GetEntries(headers);
bool hasAccept = false;
for (uint32_t i = 0; i < headers.Length(); ++i) {
if (!hasAccept && headers[i].mName.EqualsLiteral("accept")) {
hasAccept = true;
}
if (headers[i].mValue.IsEmpty()) {
- aChannel->SetEmptyRequestHeader(headers[i].mName);
+ DebugOnly<nsresult> rv = aChannel->SetEmptyRequestHeader(headers[i].mName);
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
} else {
- aChannel->SetRequestHeader(headers[i].mName, headers[i].mValue, false /* merge */);
+ DebugOnly<nsresult> rv =
+ aChannel->SetRequestHeader(headers[i].mName, headers[i].mValue,
+ false /* merge */);
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
}
}
if (!hasAccept) {
- aChannel->SetRequestHeader(NS_LITERAL_CSTRING("accept"),
- NS_LITERAL_CSTRING("*/*"),
- false /* merge */);
+ DebugOnly<nsresult> rv =
+ aChannel->SetRequestHeader(NS_LITERAL_CSTRING("accept"),
+ NS_LITERAL_CSTRING("*/*"),
+ false /* merge */);
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
}
if (mRequest->ForceOriginHeader()) {
nsAutoString origin;
if (NS_SUCCEEDED(nsContentUtils::GetUTFOrigin(mPrincipal, origin))) {
- aChannel->SetRequestHeader(NS_LITERAL_CSTRING("origin"),
- NS_ConvertUTF16toUTF8(origin),
- false /* merge */);
+ DebugOnly<nsresult> rv =
+ aChannel->SetRequestHeader(NS_LITERAL_CSTRING("origin"),
+ NS_ConvertUTF16toUTF8(origin),
+ false /* merge */);
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
}
}
}
} // namespace dom
} // namespace mozilla
--- a/dom/fetch/FetchUtil.cpp
+++ b/dom/fetch/FetchUtil.cpp
@@ -143,17 +143,17 @@ FetchUtil::SetRequestReferrer(nsIPrincip
rv = NS_NewURI(getter_AddRefs(referrerURI), referrer, nullptr, nullptr);
NS_ENSURE_SUCCESS(rv, rv);
rv = aChannel->SetReferrerWithPolicy(referrerURI, policy);
NS_ENSURE_SUCCESS(rv, rv);
}
nsCOMPtr<nsIURI> referrerURI;
- aChannel->GetReferrer(getter_AddRefs(referrerURI));
+ Unused << aChannel->GetReferrer(getter_AddRefs(referrerURI));
// Step 8 https://fetch.spec.whatwg.org/#main-fetch
// If request’s referrer is not "no-referrer", set request’s referrer to
// the result of invoking determine request’s referrer.
if (referrerURI) {
nsAutoCString spec;
rv = referrerURI->GetSpec(spec);
NS_ENSURE_SUCCESS(rv, rv);
--- a/dom/fetch/InternalHeaders.cpp
+++ b/dom/fetch/InternalHeaders.cpp
@@ -350,17 +350,20 @@ void
InternalHeaders::FillResponseHeaders(nsIRequest* aRequest)
{
nsCOMPtr<nsIHttpChannel> httpChannel = do_QueryInterface(aRequest);
if (!httpChannel) {
return;
}
RefPtr<FillHeaders> visitor = new FillHeaders(this);
- httpChannel->VisitResponseHeaders(visitor);
+ nsresult rv = httpChannel->VisitResponseHeaders(visitor);
+ if (NS_FAILED(rv)) {
+ NS_WARNING("failed to fill headers");
+ }
}
bool
InternalHeaders::HasOnlySimpleHeaders() const
{
for (uint32_t i = 0; i < mList.Length(); ++i) {
if (!IsSimpleHeader(mList[i].mName, mList[i].mValue)) {
return false;
--- a/dom/flyweb/HttpServer.cpp
+++ b/dom/flyweb/HttpServer.cpp
@@ -286,17 +286,19 @@ HttpServer::TransportProvider::SetTransp
void
HttpServer::TransportProvider::MaybeNotify()
{
if (mTransport && mListener) {
RefPtr<TransportProvider> self = this;
nsCOMPtr<nsIRunnable> event = NS_NewRunnableFunction([self, this] ()
{
- mListener->OnTransportAvailable(mTransport, mInput, mOutput);
+ DebugOnly<nsresult> rv = mListener->OnTransportAvailable(mTransport,
+ mInput, mOutput);
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
});
NS_DispatchToCurrentThread(event);
}
}
NS_IMPL_ISUPPORTS(HttpServer::Connection,
nsIInputStreamCallback,
nsIOutputStreamCallback)
--- a/dom/html/HTMLMediaElement.cpp
+++ b/dom/html/HTMLMediaElement.cpp
@@ -512,17 +512,17 @@ HTMLMediaElement::MediaLoadListener::OnS
return status;
}
nsCOMPtr<nsIHttpChannel> hc = do_QueryInterface(aRequest);
bool succeeded;
if (hc && NS_SUCCEEDED(hc->GetRequestSucceeded(&succeeded)) && !succeeded) {
element->NotifyLoadError();
uint32_t responseStatus = 0;
- hc->GetResponseStatus(&responseStatus);
+ Unused << hc->GetResponseStatus(&responseStatus);
nsAutoString code;
code.AppendInt(responseStatus);
nsAutoString src;
element->GetCurrentSrc(src);
const char16_t* params[] = { code.get(), src.get() };
element->ReportLoadError("MediaLoadHttpError", params, ArrayLength(params));
return NS_BINDING_ABORTED;
}
@@ -1162,19 +1162,20 @@ public:
channel->SetNotificationCallbacks(loadListener);
nsCOMPtr<nsIHttpChannel> hc = do_QueryInterface(channel);
if (hc) {
// Use a byte range request from the start of the resource.
// This enables us to detect if the stream supports byte range
// requests, and therefore seeking, early.
- hc->SetRequestHeader(NS_LITERAL_CSTRING("Range"),
- NS_LITERAL_CSTRING("bytes=0-"),
- false);
+ rv = hc->SetRequestHeader(NS_LITERAL_CSTRING("Range"),
+ NS_LITERAL_CSTRING("bytes=0-"),
+ false);
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
aElement->SetRequestHeaders(hc);
}
rv = channel->AsyncOpen2(loadListener);
if (NS_FAILED(rv)) {
// Notify load error so the element will try next resource candidate.
aElement->NotifyLoadError();
return;
@@ -6451,22 +6452,25 @@ void HTMLMediaElement::SetRequestHeaders
loadflags |= nsIRequest::INHIBIT_PIPELINE;
aChannel->SetLoadFlags(loadflags);
// Apache doesn't send Content-Length when gzip transfer encoding is used,
// which prevents us from estimating the video length (if explicit Content-Duration
// and a length spec in the container are not present either) and from seeking.
// So, disable the standard "Accept-Encoding: gzip,deflate" that we usually send.
// See bug 614760.
- aChannel->SetRequestHeader(NS_LITERAL_CSTRING("Accept-Encoding"),
- EmptyCString(), false);
+ DebugOnly<nsresult> rv =
+ aChannel->SetRequestHeader(NS_LITERAL_CSTRING("Accept-Encoding"),
+ EmptyCString(), false);
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
// Set the Referer header
- aChannel->SetReferrerWithPolicy(OwnerDoc()->GetDocumentURI(),
- OwnerDoc()->GetReferrerPolicy());
+ rv = aChannel->SetReferrerWithPolicy(OwnerDoc()->GetDocumentURI(),
+ OwnerDoc()->GetReferrerPolicy());
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
}
void HTMLMediaElement::FireTimeUpdate(bool aPeriodic)
{
NS_ASSERTION(NS_IsMainThread(), "Should be on main thread.");
TimeStamp now = TimeStamp::Now();
double time = CurrentTime();
--- a/dom/media/MediaResource.cpp
+++ b/dom/media/MediaResource.cpp
@@ -180,19 +180,19 @@ ChannelMediaResource::OnStartRequest(nsI
return NS_ERROR_DOM_BAD_URI;
}
}
nsCOMPtr<nsIHttpChannel> hc = do_QueryInterface(aRequest);
bool seekable = false;
if (hc) {
uint32_t responseStatus = 0;
- hc->GetResponseStatus(&responseStatus);
+ Unused << hc->GetResponseStatus(&responseStatus);
bool succeeded = false;
- hc->GetRequestSucceeded(&succeeded);
+ Unused << hc->GetRequestSucceeded(&succeeded);
if (!succeeded && NS_SUCCEEDED(status)) {
// HTTP-level error (e.g. 4xx); treat this as a fatal network-level error.
// We might get this on a seek.
// (Note that lower-level errors indicated by NS_FAILED(status) are
// handled in OnStopRequest.)
// A 416 error should treated as EOF here... it's possible
// that we don't get Content-Length, we read N bytes, then we
@@ -209,18 +209,18 @@ ChannelMediaResource::OnStartRequest(nsI
// This disconnects our listener so we don't get any more data. We
// certainly don't want an error page to end up in our cache!
CloseChannel();
return NS_OK;
}
nsAutoCString ranges;
- hc->GetResponseHeader(NS_LITERAL_CSTRING("Accept-Ranges"),
- ranges);
+ Unused << hc->GetResponseHeader(NS_LITERAL_CSTRING("Accept-Ranges"),
+ ranges);
bool acceptsRanges = ranges.EqualsLiteral("bytes");
// True if this channel will not return an unbounded amount of data
bool dataIsBounded = false;
int64_t contentLength = -1;
hc->GetContentLength(&contentLength);
if (contentLength >= 0 &&
(responseStatus == HTTP_OK_CODE ||
--- a/dom/performance/PerformanceMainThread.cpp
+++ b/dom/performance/PerformanceMainThread.cpp
@@ -149,40 +149,41 @@ PerformanceMainThread::AddEntry(nsIHttpC
0);
// The PerformanceResourceTiming object will use the PerformanceTiming
// object to get all the required timings.
RefPtr<PerformanceResourceTiming> performanceEntry =
new PerformanceResourceTiming(performanceTiming, this, entryName);
nsAutoCString protocol;
- channel->GetProtocolVersion(protocol);
+ // Can be an empty string.
+ Unused << channel->GetProtocolVersion(protocol);
// If this is a local fetch, nextHopProtocol should be set to empty string.
nsCOMPtr<nsICacheInfoChannel> cachedChannel = do_QueryInterface(channel);
if (cachedChannel) {
bool isFromCache;
if (NS_SUCCEEDED(cachedChannel->IsFromCache(&isFromCache))
&& isFromCache) {
protocol.Truncate();
}
}
performanceEntry->SetNextHopProtocol(NS_ConvertUTF8toUTF16(protocol));
uint64_t encodedBodySize = 0;
- channel->GetEncodedBodySize(&encodedBodySize);
+ Unused << channel->GetEncodedBodySize(&encodedBodySize);
performanceEntry->SetEncodedBodySize(encodedBodySize);
uint64_t transferSize = 0;
- channel->GetTransferSize(&transferSize);
+ Unused << channel->GetTransferSize(&transferSize);
performanceEntry->SetTransferSize(transferSize);
uint64_t decodedBodySize = 0;
- channel->GetDecodedBodySize(&decodedBodySize);
+ Unused << channel->GetDecodedBodySize(&decodedBodySize);
if (decodedBodySize == 0) {
decodedBodySize = encodedBodySize;
}
performanceEntry->SetDecodedBodySize(decodedBodySize);
// If the initiator type had no valid value, then set it to the default
// ("other") value.
if (initiatorType.IsEmpty()) {
--- a/dom/plugins/base/nsPluginStreamListenerPeer.cpp
+++ b/dom/plugins/base/nsPluginStreamListenerPeer.cpp
@@ -772,17 +772,18 @@ nsPluginStreamListenerPeer::RequestRead(
if (NS_FAILED(rv))
return rv;
nsCOMPtr<nsIHttpChannel> httpChannel(do_QueryInterface(channel));
if (!httpChannel)
return NS_ERROR_FAILURE;
- httpChannel->SetRequestHeader(NS_LITERAL_CSTRING("Range"), rangeString, false);
+ rv = httpChannel->SetRequestHeader(NS_LITERAL_CSTRING("Range"), rangeString, false);
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
mAbort = true; // instruct old stream listener to cancel
// the request on the next ODA.
nsCOMPtr<nsIStreamListener> converter;
if (numRequests == 1) {
converter = this;
@@ -1169,17 +1170,18 @@ nsresult nsPluginStreamListenerPeer::Set
// Assemble everything and pass to listener.
nsPrintfCString status("HTTP%s %" PRIu32 " %s", ver.get(), statusNum,
statusText.get());
static_cast<nsIHTTPHeaderListener*>(mPStreamListener)->StatusLine(status.get());
}
// Also provide all HTTP response headers to our listener.
- httpChannel->VisitResponseHeaders(this);
+ rv = httpChannel->VisitResponseHeaders(this);
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
mSeekable = false;
// first we look for a content-encoding header. If we find one, we tell the
// plugin that stream is not seekable, because the plugin always sees
// uncompressed data, so it can't make meaningful range requests on a
// compressed entity. Also, we force the plugin to use
// nsPluginStreamType_AsFile stream type and we have to save decompressed
// file into local plugin cache, because necko cache contains original
--- a/dom/security/nsCSPContext.cpp
+++ b/dom/security/nsCSPContext.cpp
@@ -995,17 +995,18 @@ nsCSPContext::SendReports(nsISupports* a
}
rv = uploadChannel->SetUploadStream(sis, NS_LITERAL_CSTRING("application/csp-report"), -1);
NS_ENSURE_SUCCESS(rv, rv);
// if this is an HTTP channel, set the request method to post
nsCOMPtr<nsIHttpChannel> httpChannel(do_QueryInterface(reportChannel));
if (httpChannel) {
- httpChannel->SetRequestMethod(NS_LITERAL_CSTRING("POST"));
+ rv = httpChannel->SetRequestMethod(NS_LITERAL_CSTRING("POST"));
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
}
RefPtr<CSPViolationReportListener> listener = new CSPViolationReportListener();
rv = reportChannel->AsyncOpen2(listener);
// AsyncOpen should not fail, but could if there's no load group (like if
// SetRequestContext is not given a channel). This should fail quietly and
// not return an error since it's really ok if reports don't go out, but
--- a/dom/security/nsContentSecurityManager.cpp
+++ b/dom/security/nsContentSecurityManager.cpp
@@ -320,17 +320,18 @@ DoContentSecurityChecks(nsIChannel* aCha
case nsIContentPolicy::TYPE_WEBSOCKET: {
// Websockets have to use the proxied URI:
// ws:// instead of http:// for CSP checks
nsCOMPtr<nsIHttpChannelInternal> httpChannelInternal
= do_QueryInterface(aChannel);
MOZ_ASSERT(httpChannelInternal);
if (httpChannelInternal) {
- httpChannelInternal->GetProxyURI(getter_AddRefs(uri));
+ rv = httpChannelInternal->GetProxyURI(getter_AddRefs(uri));
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
}
mimeTypeGuess = EmptyCString();
requestingContext = aLoadInfo->LoadingNode();
break;
}
case nsIContentPolicy::TYPE_CSP_REPORT: {
mimeTypeGuess = EmptyCString();
--- a/dom/workers/ScriptLoader.cpp
+++ b/dom/workers/ScriptLoader.cpp
@@ -1057,25 +1057,25 @@ private:
bool requestSucceeded;
rv = httpChannel->GetRequestSucceeded(&requestSucceeded);
NS_ENSURE_SUCCESS(rv, rv);
if (!requestSucceeded) {
return NS_ERROR_NOT_AVAILABLE;
}
- httpChannel->GetResponseHeader(
+ Unused << httpChannel->GetResponseHeader(
NS_LITERAL_CSTRING("content-security-policy"),
tCspHeaderValue);
- httpChannel->GetResponseHeader(
+ Unused << httpChannel->GetResponseHeader(
NS_LITERAL_CSTRING("content-security-policy-report-only"),
tCspROHeaderValue);
- httpChannel->GetResponseHeader(
+ Unused << httpChannel->GetResponseHeader(
NS_LITERAL_CSTRING("referrer-policy"),
tRPHeaderCValue);
}
// May be null.
nsIDocument* parentDoc = mWorkerPrivate->GetDocument();
// Use the regular nsScriptLoader for this grunt work! Should be just fine
--- a/dom/workers/ServiceWorkerPrivate.cpp
+++ b/dom/workers/ServiceWorkerPrivate.cpp
@@ -1379,17 +1379,18 @@ public:
mContentPolicyType = loadInfo->InternalContentPolicyType();
nsCOMPtr<nsIHttpChannel> httpChannel = do_QueryInterface(channel);
MOZ_ASSERT(httpChannel, "How come we don't have an HTTP channel?");
nsAutoCString referrer;
// Ignore the return value since the Referer header may not exist.
- httpChannel->GetRequestHeader(NS_LITERAL_CSTRING("Referer"), referrer);
+ Unused << httpChannel->GetRequestHeader(NS_LITERAL_CSTRING("Referer"),
+ referrer);
if (!referrer.IsEmpty()) {
mReferrer = referrer;
} else {
// If there's no referrer Header, means the header was omitted for
// security/privacy reason.
mReferrer = EmptyCString();
}
@@ -1434,25 +1435,28 @@ public:
nsCOMPtr<nsIHttpChannelInternal> internalChannel = do_QueryInterface(httpChannel);
NS_ENSURE_TRUE(internalChannel, NS_ERROR_NOT_AVAILABLE);
mRequestMode = InternalRequest::MapChannelToRequestMode(channel);
// This is safe due to static_asserts in ServiceWorkerManager.cpp.
uint32_t redirectMode;
- internalChannel->GetRedirectMode(&redirectMode);
+ rv = internalChannel->GetRedirectMode(&redirectMode);
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
mRequestRedirect = static_cast<RequestRedirect>(redirectMode);
// This is safe due to static_asserts in ServiceWorkerManager.cpp.
uint32_t cacheMode;
- internalChannel->GetFetchCacheMode(&cacheMode);
+ rv = internalChannel->GetFetchCacheMode(&cacheMode);
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
mCacheMode = static_cast<RequestCache>(cacheMode);
- internalChannel->GetIntegrityMetadata(mIntegrity);
+ rv = internalChannel->GetIntegrityMetadata(mIntegrity);
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
mRequestCredentials = InternalRequest::MapChannelToRequestCredentials(channel);
rv = httpChannel->VisitNonDefaultRequestHeaders(this);
NS_ENSURE_SUCCESS(rv, rv);
nsCOMPtr<nsIUploadChannel2> uploadChannel = do_QueryInterface(httpChannel);
if (uploadChannel) {
--- a/dom/workers/ServiceWorkerScriptCache.cpp
+++ b/dom/workers/ServiceWorkerScriptCache.cpp
@@ -666,21 +666,23 @@ CompareNetwork::Initialize(nsIPrincipal*
flags);
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
nsCOMPtr<nsIHttpChannel> httpChannel = do_QueryInterface(mChannel);
if (httpChannel) {
// Spec says no redirects allowed for SW scripts.
- httpChannel->SetRedirectionLimit(0);
+ rv = httpChannel->SetRedirectionLimit(0);
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
- httpChannel->SetRequestHeader(NS_LITERAL_CSTRING("Service-Worker"),
- NS_LITERAL_CSTRING("script"),
- /* merge */ false);
+ rv = httpChannel->SetRequestHeader(NS_LITERAL_CSTRING("Service-Worker"),
+ NS_LITERAL_CSTRING("script"),
+ /* merge */ false);
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
}
nsCOMPtr<nsIStreamLoader> loader;
rv = NS_NewStreamLoader(getter_AddRefs(loader), this, this);
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
@@ -760,17 +762,17 @@ CompareNetwork::OnStreamComplete(nsIStre
mManager->NetworkFinished(rv);
return NS_OK;
}
if (NS_WARN_IF(!requestSucceeded)) {
// Get the stringified numeric status code, not statusText which could be
// something misleading like OK for a 404.
uint32_t status = 0;
- httpChannel->GetResponseStatus(&status); // don't care if this fails, use 0.
+ Unused << httpChannel->GetResponseStatus(&status); // don't care if this fails, use 0.
nsAutoString statusAsText;
statusAsText.AppendInt(status);
RefPtr<ServiceWorkerRegistrationInfo> registration = mManager->GetRegistration();
ServiceWorkerManager::LocalizeAndReportToAllClients(
registration->mScope, "ServiceWorkerRegisterNetworkError",
nsTArray<nsString> { NS_ConvertUTF8toUTF16(registration->mScope),
statusAsText, mManager->URL() });
--- a/dom/xhr/XMLHttpRequestMainThread.cpp
+++ b/dom/xhr/XMLHttpRequestMainThread.cpp
@@ -1003,17 +1003,17 @@ XMLHttpRequestMainThread::GetStatusText(
}
if (mErrorLoad) {
return;
}
nsCOMPtr<nsIHttpChannel> httpChannel = GetCurrentHttpChannel();
if (httpChannel) {
- httpChannel->GetResponseStatusText(aStatusText);
+ Unused << httpChannel->GetResponseStatusText(aStatusText);
} else {
aStatusText.AssignLiteral("OK");
}
}
void
XMLHttpRequestMainThread::CloseRequest()
{
@@ -1174,17 +1174,17 @@ XMLHttpRequestMainThread::IsSafeHeader(c
for (uint32_t i = 0; i < ArrayLength(kCrossOriginSafeHeaders); ++i) {
if (aHeader.LowerCaseEqualsASCII(kCrossOriginSafeHeaders[i])) {
return true;
}
}
nsAutoCString headerVal;
// The "Access-Control-Expose-Headers" header contains a comma separated
// list of method names.
- aHttpChannel->
+ Unused << aHttpChannel->
GetResponseHeader(NS_LITERAL_CSTRING("Access-Control-Expose-Headers"),
headerVal);
nsCCharSeparatedTokenizer exposeTokens(headerVal, ',');
bool isSafe = false;
while (exposeTokens.hasMoreTokens()) {
const nsDependentCSubstring& token = exposeTokens.nextToken();
if (token.IsEmpty()) {
continue;
@@ -1626,17 +1626,18 @@ XMLHttpRequestMainThread::PopulateNetwor
{
if (mNetworkInterfaceId.IsEmpty()) {
return;
}
nsCOMPtr<nsIHttpChannelInternal> channel(do_QueryInterface(mChannel));
if (!channel) {
return;
}
- channel->SetNetworkInterfaceId(mNetworkInterfaceId);
+ DebugOnly<nsresult> rv = channel->SetNetworkInterfaceId(mNetworkInterfaceId);
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
}
/*
* "Copy" from a stream.
*/
nsresult
XMLHttpRequestMainThread::StreamReaderFunc(nsIInputStream* in,
void* closure,
@@ -2019,17 +2020,18 @@ XMLHttpRequestMainThread::OnStartRequest
}
// Set up responseXML
bool parseBody = mResponseType == XMLHttpRequestResponseType::_empty ||
mResponseType == XMLHttpRequestResponseType::Document;
nsCOMPtr<nsIHttpChannel> httpChannel(do_QueryInterface(mChannel));
if (parseBody && httpChannel) {
nsAutoCString method;
- httpChannel->GetRequestMethod(method);
+ rv = httpChannel->GetRequestMethod(method);
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
parseBody = !method.EqualsLiteral("HEAD");
}
mIsHtml = false;
mWarnAboutSyncHtml = false;
if (parseBody && NS_SUCCEEDED(status)) {
// We can gain a huge performance win by not even trying to
// parse non-XML data. This also protects us from the situation
@@ -2622,17 +2624,18 @@ XMLHttpRequestMainThread::InitiateFetch(
if (aUploadContentType.IsEmpty()) {
aUploadContentType.AssignLiteral("application/octet-stream");
}
nsCOMPtr<nsIUploadChannel> uploadChannel =
do_QueryInterface(httpChannel);
uploadChannel->SetUploadStream(aUploadStream, aUploadContentType,
mUploadTotal);
// Reset the method to its original value
- httpChannel->SetRequestMethod(mRequestMethod);
+ rv = httpChannel->SetRequestMethod(mRequestMethod);
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
}
}
}
// Due to the chrome-only XHR.channel API, we need a hacky way to set the
// SEC_COOKIES_INCLUDE *after* the channel has been has been created, since
// .withCredentials can be called after open() is called.
// Not doing this for privileged system XHRs since those don't use CORS.
@@ -2653,17 +2656,18 @@ XMLHttpRequestMainThread::InitiateFetch(
if (cos) {
cos->AddClassFlags(nsIClassOfService::Unblocked);
}
// Disable Necko-internal response timeouts.
nsCOMPtr<nsIHttpChannelInternal>
internalHttpChannel(do_QueryInterface(mChannel));
if (internalHttpChannel) {
- internalHttpChannel->SetResponseTimeoutEnabled(false);
+ rv = internalHttpChannel->SetResponseTimeoutEnabled(false);
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
}
if (!mIsAnon) {
AddLoadFlags(mChannel, nsIChannel::LOAD_EXPLICIT_CREDENTIALS);
}
// Bypass the network cache in cases where it makes no sense:
// POST responses are always unique, and we provide no API that would
@@ -4111,19 +4115,23 @@ RequestHeaders::Clear()
mHeaders.Clear();
}
void
RequestHeaders::ApplyToChannel(nsIHttpChannel* aHttpChannel) const
{
for (const RequestHeader& header : mHeaders) {
if (header.mValue.IsEmpty()) {
- aHttpChannel->SetEmptyRequestHeader(header.mName);
+ DebugOnly<nsresult> rv =
+ aHttpChannel->SetEmptyRequestHeader(header.mName);
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
} else {
- aHttpChannel->SetRequestHeader(header.mName, header.mValue, false);
+ DebugOnly<nsresult> rv =
+ aHttpChannel->SetRequestHeader(header.mName, header.mValue, false);
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
}
}
}
void
RequestHeaders::GetCORSUnsafeHeaders(nsTArray<nsCString>& aArray) const
{
static const char *kCrossOriginSafeHeaders[] = {
--- a/dom/xml/XMLDocument.cpp
+++ b/dom/xml/XMLDocument.cpp
@@ -422,17 +422,18 @@ XMLDocument::Load(const nsAString& aUrl,
return false;
}
// TODO Bug 1189945: Remove nsIChannel CorsMode flag and set Request.mode
// based on nsILoadInfo securityFlags instead. This block will be removed
// when Request.mode set correctly.
nsCOMPtr<nsIHttpChannelInternal> httpChannel = do_QueryInterface(channel);
if (httpChannel) {
- httpChannel->SetCorsMode(nsIHttpChannelInternal::CORS_MODE_SAME_ORIGIN);
+ rv = httpChannel->SetCorsMode(nsIHttpChannelInternal::CORS_MODE_SAME_ORIGIN);
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
}
// StartDocumentLoad asserts that readyState is uninitialized, so
// uninitialize it. SetReadyStateInternal make this transition invisible to
// Web content. But before doing that, assert that the current readyState
// is complete as it should be after the call to ResetToURI() above.
MOZ_ASSERT(GetReadyStateEnum() == nsIDocument::READYSTATE_COMPLETE,
"Bad readyState");
--- a/dom/xslt/xslt/txMozillaStylesheetCompiler.cpp
+++ b/dom/xslt/xslt/txMozillaStylesheetCompiler.cpp
@@ -303,17 +303,17 @@ txStylesheetSink::OnStartRequest(nsIRequ
NS_IMETHODIMP
txStylesheetSink::OnStopRequest(nsIRequest *aRequest, nsISupports *aContext,
nsresult aStatusCode)
{
bool success = true;
nsCOMPtr<nsIHttpChannel> httpChannel = do_QueryInterface(aRequest);
if (httpChannel) {
- httpChannel->GetRequestSucceeded(&success);
+ Unused << httpChannel->GetRequestSucceeded(&success);
}
nsresult result = aStatusCode;
if (!success) {
// XXX We sometimes want to use aStatusCode here, but the parser resets
// it to NS_ERROR_NOINTERFACE because we don't implement
// nsIHTMLContentSink.
result = NS_ERROR_XSLT_NETWORK_ERROR;
@@ -457,24 +457,27 @@ txCompileObserver::startLoad(nsIURI* aUr
loadGroup);
NS_ENSURE_SUCCESS(rv, rv);
channel->SetContentType(NS_LITERAL_CSTRING("text/xml"));
nsCOMPtr<nsIHttpChannel> httpChannel(do_QueryInterface(channel));
if (httpChannel) {
- httpChannel->SetRequestHeader(NS_LITERAL_CSTRING("Accept"),
- NS_LITERAL_CSTRING("*/*"),
- false);
+ DebugOnly<nsresult> rv;
+ rv = httpChannel->SetRequestHeader(NS_LITERAL_CSTRING("Accept"),
+ NS_LITERAL_CSTRING("*/*"),
+ false);
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
nsCOMPtr<nsIURI> referrerURI;
aReferrerPrincipal->GetURI(getter_AddRefs(referrerURI));
if (referrerURI) {
- httpChannel->SetReferrerWithPolicy(referrerURI, aReferrerPolicy);
+ rv = httpChannel->SetReferrerWithPolicy(referrerURI, aReferrerPolicy);
+ MOZ_ASSERT(NS_SUCCEEDED(rv));
}
}
nsCOMPtr<nsIParser> parser = do_CreateInstance(kCParserCID, &rv);
NS_ENSURE_SUCCESS(rv, rv);
RefPtr<txStylesheetSink> sink = new txStylesheetSink(aCompiler, parser);
NS_ENSURE_TRUE(sink, NS_ERROR_OUT_OF_MEMORY);