mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-10 02:08:38 +09:00
ported from mozilla: Bug 1384493 - Speculative loading style should use correct referrer policy. r=wchen (19a77f8441)
This commit is contained in:
parent
687f52e183
commit
b694e41119
5 changed files with 25 additions and 6 deletions
|
|
@ -70,7 +70,8 @@ nsHtml5SpeculativeLoad::Perform(nsHtml5TreeOpExecutor* aExecutor)
|
|||
mIsAsync, mIsDefer, true);
|
||||
break;
|
||||
case eSpeculativeLoadStyle:
|
||||
aExecutor->PreloadStyle(mUrl, mCharset, mCrossOrigin, mIntegrity);
|
||||
aExecutor->PreloadStyle(mUrl, mCharset, mCrossOrigin, mReferrerPolicy,
|
||||
mIntegrity);
|
||||
break;
|
||||
case eSpeculativeLoadManifest:
|
||||
aExecutor->ProcessOfflineManifest(mUrl);
|
||||
|
|
|
|||
|
|
@ -157,6 +157,7 @@ class nsHtml5SpeculativeLoad {
|
|||
inline void InitStyle(nsHtml5String aUrl,
|
||||
nsHtml5String aCharset,
|
||||
nsHtml5String aCrossOrigin,
|
||||
nsHtml5String aReferrerPolicy,
|
||||
nsHtml5String aIntegrity)
|
||||
{
|
||||
NS_PRECONDITION(mOpCode == eSpeculativeLoadUninitialized,
|
||||
|
|
@ -165,6 +166,7 @@ class nsHtml5SpeculativeLoad {
|
|||
aUrl.ToString(mUrl);
|
||||
aCharset.ToString(mCharset);
|
||||
aCrossOrigin.ToString(mCrossOrigin);
|
||||
aReferrerPolicy.ToString(mReferrerPolicy);
|
||||
aIntegrity.ToString(mIntegrity);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -218,8 +218,10 @@ nsHtml5TreeBuilder::createElement(int32_t aNamespace,
|
|||
aAttributes->getValue(nsHtml5AttributeName::ATTR_CROSSORIGIN);
|
||||
nsHtml5String integrity =
|
||||
aAttributes->getValue(nsHtml5AttributeName::ATTR_INTEGRITY);
|
||||
nsHtml5String referrerPolicy =
|
||||
aAttributes->getValue(nsHtml5AttributeName::ATTR_REFERRERPOLICY);
|
||||
mSpeculativeLoadQueue.AppendElement()->InitStyle(
|
||||
url, charset, crossOrigin, integrity);
|
||||
url, charset, crossOrigin, referrerPolicy, integrity);
|
||||
}
|
||||
} else if (rel.LowerCaseEqualsASCII("preconnect")) {
|
||||
nsHtml5String url =
|
||||
|
|
@ -263,8 +265,10 @@ nsHtml5TreeBuilder::createElement(int32_t aNamespace,
|
|||
aAttributes->getValue(nsHtml5AttributeName::ATTR_CROSSORIGIN);
|
||||
nsHtml5String integrity =
|
||||
aAttributes->getValue(nsHtml5AttributeName::ATTR_INTEGRITY);
|
||||
nsHtml5String referrerPolicy =
|
||||
aAttributes->getValue(nsHtml5AttributeName::ATTR_REFERRERPOLICY);
|
||||
mSpeculativeLoadQueue.AppendElement()->InitStyle(
|
||||
url, charset, crossOrigin, integrity);
|
||||
url, charset, crossOrigin, referrerPolicy, integrity);
|
||||
} else if (preloadAs.LowerCaseEqualsASCII("image")) {
|
||||
nsHtml5String srcset =
|
||||
aAttributes->getValue(nsHtml5AttributeName::ATTR_SRCSET);
|
||||
|
|
@ -368,8 +372,10 @@ nsHtml5TreeBuilder::createElement(int32_t aNamespace,
|
|||
aAttributes->getValue(nsHtml5AttributeName::ATTR_CROSSORIGIN);
|
||||
nsHtml5String integrity =
|
||||
aAttributes->getValue(nsHtml5AttributeName::ATTR_INTEGRITY);
|
||||
nsHtml5String referrerPolicy =
|
||||
aAttributes->getValue(nsHtml5AttributeName::ATTR_REFERRERPOLICY);
|
||||
mSpeculativeLoadQueue.AppendElement()->InitStyle(
|
||||
url, nullptr, crossOrigin, integrity);
|
||||
url, nullptr, crossOrigin, referrerPolicy, integrity);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -939,14 +939,23 @@ void
|
|||
nsHtml5TreeOpExecutor::PreloadStyle(const nsAString& aURL,
|
||||
const nsAString& aCharset,
|
||||
const nsAString& aCrossOrigin,
|
||||
const nsAString& aReferrerPolicy,
|
||||
const nsAString& aIntegrity)
|
||||
{
|
||||
nsCOMPtr<nsIURI> uri = ConvertIfNotPreloadedYet(aURL);
|
||||
if (!uri) {
|
||||
return;
|
||||
}
|
||||
mDocument->PreloadStyle(uri, aCharset, aCrossOrigin,
|
||||
mSpeculationReferrerPolicy, aIntegrity);
|
||||
|
||||
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,
|
||||
aIntegrity);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
|||
|
|
@ -256,6 +256,7 @@ class nsHtml5TreeOpExecutor final : public nsHtml5DocumentBuilder,
|
|||
|
||||
void PreloadStyle(const nsAString& aURL, const nsAString& aCharset,
|
||||
const nsAString& aCrossOrigin,
|
||||
const nsAString& aReferrerPolicy,
|
||||
const nsAString& aIntegrity);
|
||||
|
||||
void PreloadImage(const nsAString& aURL,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue