void TypeUtils::ToCacheResponseWithoutBody(CacheResponse& aOut, InternalResponse& aIn, ErrorResult& aRv) { aOut.type() = aIn.Type(); aIn.GetUrl(aOut.url()); if (aOut.url() != EmptyCString()) { // Pass all Response URL schemes through... The spec only requires we take // action on invalid schemes for Request objects. ProcessURL(aOut.url(), nullptr, nullptr, nullptr, aRv); if (aRv.Failed()) { return; } } aOut.status() = aIn.GetStatus(); aOut.statusText() = aIn.GetStatusText(); nsRefPtr<InternalHeaders> headers = aIn.UnfilteredHeaders(); MOZ_ASSERT(headers); if (HasVaryStar(headers)) { aRv.ThrowTypeError(MSG_RESPONSE_HAS_VARY_STAR); return; } ToHeadersEntryList(aOut.headers(), headers); aOut.headersGuard() = headers->Guard(); aOut.channelInfo() = aIn.GetChannelInfo().AsIPCChannelInfo(); if (aIn.GetPrincipalInfo()) { aOut.principalInfo() = *aIn.GetPrincipalInfo(); } else { aOut.principalInfo() = void_t(); } }
void TypeUtils::ToPCacheResponseWithoutBody(PCacheResponse& aOut, InternalResponse& aIn, ErrorResult& aRv) { aOut.type() = aIn.Type(); nsAutoCString url; aIn.GetUrl(url); CopyUTF8toUTF16(url, aOut.url()); if (aOut.url() != EmptyString()) { // Pass all Response URL schemes through... The spec only requires we take // action on invalid schemes for Request objects. ProcessURL(aOut.url(), nullptr, nullptr, aRv); if (aRv.Failed()) { return; } } aOut.status() = aIn.GetStatus(); aOut.statusText() = aIn.GetStatusText(); nsRefPtr<InternalHeaders> headers = aIn.Headers(); MOZ_ASSERT(headers); headers->GetPHeaders(aOut.headers()); aOut.headersGuard() = headers->Guard(); }