mirror of
https://github.com/roytam1/basilisk55.git
synced 2026-05-26 15:02:46 +00:00
import from custom branch of UXP: ported from mozilla: Bug 1460920 - Part 1 - Speculative loading script should take referrerpolicy attribute in script element into account r=hsivonen (045f98957a) (281e3f4d)
This commit is contained in:
@@ -917,12 +917,23 @@ nsHtml5TreeOpExecutor::ShouldPreloadURI(nsIURI *aURI)
|
||||
return true;
|
||||
}
|
||||
|
||||
net::ReferrerPolicy
|
||||
nsHtml5TreeOpExecutor::GetPreloadReferrerPolicy(
|
||||
const nsAString& aReferrerPolicy)
|
||||
{
|
||||
net::ReferrerPolicy referrerPolicy =
|
||||
net::AttributeReferrerPolicyFromString(aReferrerPolicy);
|
||||
return referrerPolicy != net::RP_Unset ? referrerPolicy :
|
||||
mSpeculationReferrerPolicy;
|
||||
}
|
||||
|
||||
void
|
||||
nsHtml5TreeOpExecutor::PreloadScript(const nsAString& aURL,
|
||||
const nsAString& aCharset,
|
||||
const nsAString& aType,
|
||||
const nsAString& aCrossOrigin,
|
||||
const nsAString& aIntegrity,
|
||||
net::ReferrerPolicy aReferrerPolicy,
|
||||
bool aScriptFromHead,
|
||||
bool aAsync,
|
||||
bool aDefer,
|
||||
@@ -932,10 +943,19 @@ nsHtml5TreeOpExecutor::PreloadScript(const nsAString& aURL,
|
||||
if (!uri) {
|
||||
return;
|
||||
}
|
||||
mDocument->ScriptLoader()->PreloadURI(uri, aCharset, aType, aCrossOrigin,
|
||||
aIntegrity, aScriptFromHead, aAsync,
|
||||
aDefer, aNoModule,
|
||||
mSpeculationReferrerPolicy);
|
||||
net::ReferrerPolicy referrerPolicy = aReferrerPolicy != net::RP_Unset ?
|
||||
aReferrerPolicy : mSpeculationReferrerPolicy;
|
||||
mDocument->ScriptLoader()
|
||||
->PreloadURI(uri,
|
||||
aCharset,
|
||||
aType,
|
||||
aCrossOrigin,
|
||||
aIntegrity,
|
||||
aScriptFromHead,
|
||||
aAsync,
|
||||
aDefer,
|
||||
aNoModule,
|
||||
referrerPolicy);
|
||||
}
|
||||
|
||||
void
|
||||
@@ -950,14 +970,7 @@ nsHtml5TreeOpExecutor::PreloadStyle(const nsAString& aURL,
|
||||
return;
|
||||
}
|
||||
|
||||
mozilla::net::ReferrerPolicy referrerPolicy = mSpeculationReferrerPolicy;
|
||||
mozilla::net::ReferrerPolicy styleReferrerPolicy =
|
||||
mozilla::net::AttributeReferrerPolicyFromString(aReferrerPolicy);
|
||||
if (styleReferrerPolicy != mozilla::net::RP_Unset) {
|
||||
referrerPolicy = styleReferrerPolicy;
|
||||
}
|
||||
|
||||
mDocument->PreloadStyle(uri, aCharset, aCrossOrigin, referrerPolicy,
|
||||
mDocument->PreloadStyle(uri, aCharset, aCrossOrigin, GetPreloadReferrerPolicy(aReferrerPolicy),
|
||||
aIntegrity);
|
||||
}
|
||||
|
||||
@@ -974,18 +987,10 @@ nsHtml5TreeOpExecutor::PreloadImage(const nsAString& aURL,
|
||||
aSizes, &isImgSet);
|
||||
if (uri && ShouldPreloadURI(uri)) {
|
||||
// use document wide referrer policy
|
||||
mozilla::net::ReferrerPolicy referrerPolicy = mSpeculationReferrerPolicy;
|
||||
// if enabled in preferences, use the referrer attribute from the image, if provided
|
||||
bool referrerAttributeEnabled = Preferences::GetBool("network.http.enablePerElementReferrer", true);
|
||||
if (referrerAttributeEnabled) {
|
||||
mozilla::net::ReferrerPolicy imageReferrerPolicy =
|
||||
mozilla::net::AttributeReferrerPolicyFromString(aImageReferrerPolicy);
|
||||
if (imageReferrerPolicy != mozilla::net::RP_Unset) {
|
||||
referrerPolicy = imageReferrerPolicy;
|
||||
}
|
||||
}
|
||||
|
||||
mDocument->MaybePreLoadImage(uri, aCrossOrigin, referrerPolicy, isImgSet);
|
||||
mDocument->MaybePreLoadImage(uri,
|
||||
aCrossOrigin,
|
||||
GetPreloadReferrerPolicy(aImageReferrerPolicy),
|
||||
isImgSet);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user