diff options
Diffstat (limited to 'netwerk/base')
-rw-r--r-- | netwerk/base/nsNetUtil.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/netwerk/base/nsNetUtil.cpp b/netwerk/base/nsNetUtil.cpp index bc9bcf88a..8ff3e788f 100644 --- a/netwerk/base/nsNetUtil.cpp +++ b/netwerk/base/nsNetUtil.cpp @@ -1285,10 +1285,16 @@ NS_HasBeenCrossOrigin(nsIChannel* aChannel, bool aReport) nsCOMPtr<nsILoadInfo> loadInfo = aChannel->GetLoadInfo(); MOZ_RELEASE_ASSERT(loadInfo, "Origin tracking only works for channels created with a loadinfo"); - // TYPE_DOCUMENT loads have a null LoadingPrincipal and can not be cross origin. - if (!loadInfo->LoadingPrincipal()) { - return false; - } +#ifdef DEBUG + // Don't enforce TYPE_DOCUMENT assertions for loads + // initiated by javascript tests. + bool skipContentTypeCheck = false; + skipContentTypeCheck = Preferences::GetBool("network.loadinfo.skip_type_assertion"); +#endif + + MOZ_ASSERT(skipContentTypeCheck || + loadInfo->GetExternalContentPolicyType() != nsIContentPolicy::TYPE_DOCUMENT, + "calling NS_HasBeenCrossOrigin on a top level load"); // Always treat tainted channels as cross-origin. if (loadInfo->GetTainting() != LoadTainting::Basic) { |