Bug 1947732 - Provide nsIPrincipal to GetTrustedTypesCompliantString. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D246424
This commit is contained in:
@@ -101,7 +101,8 @@ already_AddRefed<Document> DOMParser::ParseFromStringInternal(
|
|||||||
}
|
}
|
||||||
|
|
||||||
already_AddRefed<Document> DOMParser::ParseFromString(
|
already_AddRefed<Document> DOMParser::ParseFromString(
|
||||||
const TrustedHTMLOrString& aStr, SupportedType aType, ErrorResult& aRv) {
|
const TrustedHTMLOrString& aStr, SupportedType aType,
|
||||||
|
nsIPrincipal* aSubjectPrincipal, ErrorResult& aRv) {
|
||||||
constexpr nsLiteralString sink = u"DOMParser parseFromString"_ns;
|
constexpr nsLiteralString sink = u"DOMParser parseFromString"_ns;
|
||||||
|
|
||||||
MOZ_ASSERT(mOwner);
|
MOZ_ASSERT(mOwner);
|
||||||
@@ -110,7 +111,7 @@ already_AddRefed<Document> DOMParser::ParseFromString(
|
|||||||
const nsAString* compliantString =
|
const nsAString* compliantString =
|
||||||
TrustedTypeUtils::GetTrustedTypesCompliantString(
|
TrustedTypeUtils::GetTrustedTypesCompliantString(
|
||||||
aStr, sink, kTrustedTypesOnlySinkGroup, *pinnedOwner,
|
aStr, sink, kTrustedTypesOnlySinkGroup, *pinnedOwner,
|
||||||
compliantStringHolder, aRv);
|
aSubjectPrincipal, compliantStringHolder, aRv);
|
||||||
if (aRv.Failed()) {
|
if (aRv.Failed()) {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
#include "mozilla/dom/TypedArray.h"
|
#include "mozilla/dom/TypedArray.h"
|
||||||
|
|
||||||
class nsIGlobalObject;
|
class nsIGlobalObject;
|
||||||
|
class nsIPrincipal;
|
||||||
|
|
||||||
namespace mozilla {
|
namespace mozilla {
|
||||||
class ErrorResult;
|
class ErrorResult;
|
||||||
@@ -41,7 +42,8 @@ class DOMParser final : public nsISupports, public nsWrapperCache {
|
|||||||
ErrorResult& aRv);
|
ErrorResult& aRv);
|
||||||
|
|
||||||
MOZ_CAN_RUN_SCRIPT already_AddRefed<Document> ParseFromString(
|
MOZ_CAN_RUN_SCRIPT already_AddRefed<Document> ParseFromString(
|
||||||
const TrustedHTMLOrString& aStr, SupportedType aType, ErrorResult& aRv);
|
const TrustedHTMLOrString& aStr, SupportedType aType,
|
||||||
|
nsIPrincipal* aSubjectPrincipal, ErrorResult& aRv);
|
||||||
|
|
||||||
// Chrome and UI Widgets API
|
// Chrome and UI Widgets API
|
||||||
already_AddRefed<Document> ParseFromSafeString(const nsAString& aStr,
|
already_AddRefed<Document> ParseFromSafeString(const nsAString& aStr,
|
||||||
|
|||||||
@@ -5206,6 +5206,7 @@ void Document::EnsureInitializeInternalCommandDataHashtable() {
|
|||||||
Document::InternalCommandData Document::ConvertToInternalCommand(
|
Document::InternalCommandData Document::ConvertToInternalCommand(
|
||||||
const nsAString& aHTMLCommandName,
|
const nsAString& aHTMLCommandName,
|
||||||
const TrustedHTMLOrString* aValue /* = nullptr */,
|
const TrustedHTMLOrString* aValue /* = nullptr */,
|
||||||
|
nsIPrincipal* aSubjectPrincipal /* = nullptr */,
|
||||||
ErrorResult* aRv /* = nullptr */,
|
ErrorResult* aRv /* = nullptr */,
|
||||||
nsAString* aAdjustedValue /* = nullptr */) {
|
nsAString* aAdjustedValue /* = nullptr */) {
|
||||||
MOZ_ASSERT(!aAdjustedValue || aAdjustedValue->IsEmpty());
|
MOZ_ASSERT(!aAdjustedValue || aAdjustedValue->IsEmpty());
|
||||||
@@ -5244,8 +5245,8 @@ Document::InternalCommandData Document::ConvertToInternalCommand(
|
|||||||
if (commandData.mCommand == Command::InsertHTML) {
|
if (commandData.mCommand == Command::InsertHTML) {
|
||||||
constexpr nsLiteralString sink = u"Document execCommand"_ns;
|
constexpr nsLiteralString sink = u"Document execCommand"_ns;
|
||||||
compliantString = TrustedTypeUtils::GetTrustedTypesCompliantString(
|
compliantString = TrustedTypeUtils::GetTrustedTypesCompliantString(
|
||||||
*aValue, sink, kTrustedTypesOnlySinkGroup, *this, compliantStringHolder,
|
*aValue, sink, kTrustedTypesOnlySinkGroup, *this, aSubjectPrincipal,
|
||||||
*aRv);
|
compliantStringHolder, *aRv);
|
||||||
if (aRv->Failed()) {
|
if (aRv->Failed()) {
|
||||||
return InternalCommandData();
|
return InternalCommandData();
|
||||||
}
|
}
|
||||||
@@ -5586,8 +5587,8 @@ bool Document::ExecCommand(const nsAString& aHTMLCommandName, bool aShowUI,
|
|||||||
// this might add some ugly JS dependencies?
|
// this might add some ugly JS dependencies?
|
||||||
|
|
||||||
nsAutoString adjustedValue;
|
nsAutoString adjustedValue;
|
||||||
InternalCommandData commandData =
|
InternalCommandData commandData = ConvertToInternalCommand(
|
||||||
ConvertToInternalCommand(aHTMLCommandName, &aValue, &aRv, &adjustedValue);
|
aHTMLCommandName, &aValue, &aSubjectPrincipal, &aRv, &adjustedValue);
|
||||||
switch (commandData.mCommand) {
|
switch (commandData.mCommand) {
|
||||||
case Command::DoNothing:
|
case Command::DoNothing:
|
||||||
return false;
|
return false;
|
||||||
@@ -20202,13 +20203,13 @@ static already_AddRefed<Document> CreateHTMLDocument(GlobalObject& aGlobal,
|
|||||||
/* static */
|
/* static */
|
||||||
already_AddRefed<Document> Document::ParseHTMLUnsafe(
|
already_AddRefed<Document> Document::ParseHTMLUnsafe(
|
||||||
GlobalObject& aGlobal, const TrustedHTMLOrString& aHTML,
|
GlobalObject& aGlobal, const TrustedHTMLOrString& aHTML,
|
||||||
ErrorResult& aError) {
|
nsIPrincipal* aSubjectPrincipal, ErrorResult& aError) {
|
||||||
nsCOMPtr<nsIGlobalObject> global = do_QueryInterface(aGlobal.GetAsSupports());
|
nsCOMPtr<nsIGlobalObject> global = do_QueryInterface(aGlobal.GetAsSupports());
|
||||||
constexpr nsLiteralString sink = u"Document parseHTMLUnsafe"_ns;
|
constexpr nsLiteralString sink = u"Document parseHTMLUnsafe"_ns;
|
||||||
Maybe<nsAutoString> compliantStringHolder;
|
Maybe<nsAutoString> compliantStringHolder;
|
||||||
const nsAString* compliantString =
|
const nsAString* compliantString =
|
||||||
TrustedTypeUtils::GetTrustedTypesCompliantString(
|
TrustedTypeUtils::GetTrustedTypesCompliantString(
|
||||||
aHTML, sink, kTrustedTypesOnlySinkGroup, *global,
|
aHTML, sink, kTrustedTypesOnlySinkGroup, *global, aSubjectPrincipal,
|
||||||
compliantStringHolder, aError);
|
compliantStringHolder, aError);
|
||||||
if (aError.Failed()) {
|
if (aError.Failed()) {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|||||||
@@ -4499,6 +4499,7 @@ class Document : public nsINode,
|
|||||||
* execCommand().
|
* execCommand().
|
||||||
* @param aValue The value which is set to the 3rd parameter
|
* @param aValue The value which is set to the 3rd parameter
|
||||||
* of execCommand().
|
* of execCommand().
|
||||||
|
* @param aSubjectPrincipal Principal used for execCommand().
|
||||||
* @param aRv ErrorResult used for Trusted Type conversion.
|
* @param aRv ErrorResult used for Trusted Type conversion.
|
||||||
* @param aAdjustedValue [out] Must be empty string if set non-nullptr.
|
* @param aAdjustedValue [out] Must be empty string if set non-nullptr.
|
||||||
* Will be set to adjusted value for executing
|
* Will be set to adjusted value for executing
|
||||||
@@ -4514,7 +4515,8 @@ class Document : public nsINode,
|
|||||||
*/
|
*/
|
||||||
MOZ_CAN_RUN_SCRIPT InternalCommandData ConvertToInternalCommand(
|
MOZ_CAN_RUN_SCRIPT InternalCommandData ConvertToInternalCommand(
|
||||||
const nsAString& aHTMLCommandName,
|
const nsAString& aHTMLCommandName,
|
||||||
const TrustedHTMLOrString* aValue = nullptr, ErrorResult* aRv = nullptr,
|
const TrustedHTMLOrString* aValue = nullptr,
|
||||||
|
nsIPrincipal* aSubjectPrincipal = nullptr, ErrorResult* aRv = nullptr,
|
||||||
nsAString* aAdjustedValue = nullptr);
|
nsAString* aAdjustedValue = nullptr);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -5583,7 +5585,7 @@ class Document : public nsINode,
|
|||||||
|
|
||||||
MOZ_CAN_RUN_SCRIPT static already_AddRefed<Document> ParseHTMLUnsafe(
|
MOZ_CAN_RUN_SCRIPT static already_AddRefed<Document> ParseHTMLUnsafe(
|
||||||
GlobalObject& aGlobal, const TrustedHTMLOrString& aHTML,
|
GlobalObject& aGlobal, const TrustedHTMLOrString& aHTML,
|
||||||
ErrorResult& aError);
|
nsIPrincipal* aSubjectPrincipal, ErrorResult& aError);
|
||||||
|
|
||||||
static already_AddRefed<Document> ParseHTML(GlobalObject& aGlobal,
|
static already_AddRefed<Document> ParseHTML(GlobalObject& aGlobal,
|
||||||
const nsAString& aHTML,
|
const nsAString& aHTML,
|
||||||
|
|||||||
@@ -4327,7 +4327,7 @@ void Element::SetInnerHTML(const TrustedHTMLOrNullIsEmptyString& aInnerHTML,
|
|||||||
const nsAString* compliantString =
|
const nsAString* compliantString =
|
||||||
TrustedTypeUtils::GetTrustedTypesCompliantString(
|
TrustedTypeUtils::GetTrustedTypesCompliantString(
|
||||||
aInnerHTML, sink, kTrustedTypesOnlySinkGroup, *this,
|
aInnerHTML, sink, kTrustedTypesOnlySinkGroup, *this,
|
||||||
compliantStringHolder, aError);
|
aSubjectPrincipal, compliantStringHolder, aError);
|
||||||
|
|
||||||
if (aError.Failed()) {
|
if (aError.Failed()) {
|
||||||
return;
|
return;
|
||||||
@@ -4347,6 +4347,7 @@ void Element::GetOuterHTML(OwningTrustedHTMLOrNullIsEmptyString& aOuterHTML) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Element::SetOuterHTML(const TrustedHTMLOrNullIsEmptyString& aOuterHTML,
|
void Element::SetOuterHTML(const TrustedHTMLOrNullIsEmptyString& aOuterHTML,
|
||||||
|
nsIPrincipal* aSubjectPrincipal,
|
||||||
ErrorResult& aError) {
|
ErrorResult& aError) {
|
||||||
constexpr nsLiteralString sink = u"Element outerHTML"_ns;
|
constexpr nsLiteralString sink = u"Element outerHTML"_ns;
|
||||||
|
|
||||||
@@ -4354,7 +4355,7 @@ void Element::SetOuterHTML(const TrustedHTMLOrNullIsEmptyString& aOuterHTML,
|
|||||||
const nsAString* compliantString =
|
const nsAString* compliantString =
|
||||||
TrustedTypeUtils::GetTrustedTypesCompliantString(
|
TrustedTypeUtils::GetTrustedTypesCompliantString(
|
||||||
aOuterHTML, sink, kTrustedTypesOnlySinkGroup, *this,
|
aOuterHTML, sink, kTrustedTypesOnlySinkGroup, *this,
|
||||||
compliantStringHolder, aError);
|
aSubjectPrincipal, compliantStringHolder, aError);
|
||||||
if (aError.Failed()) {
|
if (aError.Failed()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -4416,14 +4417,14 @@ enum nsAdjacentPosition { eBeforeBegin, eAfterBegin, eBeforeEnd, eAfterEnd };
|
|||||||
|
|
||||||
void Element::InsertAdjacentHTML(
|
void Element::InsertAdjacentHTML(
|
||||||
const nsAString& aPosition, const TrustedHTMLOrString& aTrustedHTMLOrString,
|
const nsAString& aPosition, const TrustedHTMLOrString& aTrustedHTMLOrString,
|
||||||
ErrorResult& aError) {
|
nsIPrincipal* aSubjectPrincipal, ErrorResult& aError) {
|
||||||
constexpr nsLiteralString kSink = u"Element insertAdjacentHTML"_ns;
|
constexpr nsLiteralString kSink = u"Element insertAdjacentHTML"_ns;
|
||||||
|
|
||||||
Maybe<nsAutoString> compliantStringHolder;
|
Maybe<nsAutoString> compliantStringHolder;
|
||||||
const nsAString* compliantString =
|
const nsAString* compliantString =
|
||||||
TrustedTypeUtils::GetTrustedTypesCompliantString(
|
TrustedTypeUtils::GetTrustedTypesCompliantString(
|
||||||
aTrustedHTMLOrString, kSink, kTrustedTypesOnlySinkGroup, *this,
|
aTrustedHTMLOrString, kSink, kTrustedTypesOnlySinkGroup, *this,
|
||||||
compliantStringHolder, aError);
|
aSubjectPrincipal, compliantStringHolder, aError);
|
||||||
|
|
||||||
if (aError.Failed()) {
|
if (aError.Failed()) {
|
||||||
return;
|
return;
|
||||||
@@ -5485,9 +5486,10 @@ EditorBase* Element::GetExtantEditor() const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Element::SetHTMLUnsafe(const TrustedHTMLOrString& aHTML,
|
void Element::SetHTMLUnsafe(const TrustedHTMLOrString& aHTML,
|
||||||
|
nsIPrincipal* aSubjectPrincipal,
|
||||||
ErrorResult& aError) {
|
ErrorResult& aError) {
|
||||||
nsContentUtils::SetHTMLUnsafe(this, this, aHTML, false /*aIsShadowRoot*/,
|
nsContentUtils::SetHTMLUnsafe(this, this, aHTML, false /*aIsShadowRoot*/,
|
||||||
aError);
|
aSubjectPrincipal, aError);
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://html.spec.whatwg.org/#event-beforematch
|
// https://html.spec.whatwg.org/#event-beforematch
|
||||||
|
|||||||
@@ -1668,11 +1668,13 @@ class Element : public FragmentOrElement {
|
|||||||
void GetOuterHTML(OwningTrustedHTMLOrNullIsEmptyString& aOuterHTML);
|
void GetOuterHTML(OwningTrustedHTMLOrNullIsEmptyString& aOuterHTML);
|
||||||
|
|
||||||
MOZ_CAN_RUN_SCRIPT void SetOuterHTML(
|
MOZ_CAN_RUN_SCRIPT void SetOuterHTML(
|
||||||
const TrustedHTMLOrNullIsEmptyString& aOuterHTML, ErrorResult& aError);
|
const TrustedHTMLOrNullIsEmptyString& aOuterHTML,
|
||||||
|
nsIPrincipal* aSubjectPrincipal, ErrorResult& aError);
|
||||||
|
|
||||||
MOZ_CAN_RUN_SCRIPT void InsertAdjacentHTML(
|
MOZ_CAN_RUN_SCRIPT void InsertAdjacentHTML(
|
||||||
const nsAString& aPosition,
|
const nsAString& aPosition,
|
||||||
const TrustedHTMLOrString& aTrustedHTMLOrString, ErrorResult& aError);
|
const TrustedHTMLOrString& aTrustedHTMLOrString,
|
||||||
|
nsIPrincipal* aSubjectPrincipal, ErrorResult& aError);
|
||||||
|
|
||||||
void SetHTML(const nsAString& aInnerHTML, const SetHTMLOptions& aOptions,
|
void SetHTML(const nsAString& aInnerHTML, const SetHTMLOptions& aOptions,
|
||||||
ErrorResult& aError);
|
ErrorResult& aError);
|
||||||
@@ -2268,6 +2270,7 @@ class Element : public FragmentOrElement {
|
|||||||
|
|
||||||
MOZ_CAN_RUN_SCRIPT
|
MOZ_CAN_RUN_SCRIPT
|
||||||
virtual void SetHTMLUnsafe(const TrustedHTMLOrString& aHTML,
|
virtual void SetHTMLUnsafe(const TrustedHTMLOrString& aHTML,
|
||||||
|
nsIPrincipal* aSubjectPrincipal,
|
||||||
ErrorResult& aError);
|
ErrorResult& aError);
|
||||||
|
|
||||||
MOZ_CAN_RUN_SCRIPT
|
MOZ_CAN_RUN_SCRIPT
|
||||||
|
|||||||
@@ -885,10 +885,11 @@ nsresult ShadowRoot::Clone(dom::NodeInfo* aNodeInfo, nsINode** aResult) const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ShadowRoot::SetHTMLUnsafe(const TrustedHTMLOrString& aHTML,
|
void ShadowRoot::SetHTMLUnsafe(const TrustedHTMLOrString& aHTML,
|
||||||
|
nsIPrincipal* aSubjectPrincipal,
|
||||||
ErrorResult& aError) {
|
ErrorResult& aError) {
|
||||||
RefPtr<Element> host = GetHost();
|
RefPtr<Element> host = GetHost();
|
||||||
nsContentUtils::SetHTMLUnsafe(this, host, aHTML, true /*aIsShadowRoot*/,
|
nsContentUtils::SetHTMLUnsafe(this, host, aHTML, true /*aIsShadowRoot*/,
|
||||||
aError);
|
aSubjectPrincipal, aError);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ShadowRoot::GetInnerHTML(
|
void ShadowRoot::GetInnerHTML(
|
||||||
@@ -897,14 +898,15 @@ void ShadowRoot::GetInnerHTML(
|
|||||||
}
|
}
|
||||||
|
|
||||||
MOZ_CAN_RUN_SCRIPT void ShadowRoot::SetInnerHTML(
|
MOZ_CAN_RUN_SCRIPT void ShadowRoot::SetInnerHTML(
|
||||||
const TrustedHTMLOrNullIsEmptyString& aInnerHTML, ErrorResult& aError) {
|
const TrustedHTMLOrNullIsEmptyString& aInnerHTML,
|
||||||
|
nsIPrincipal* aSubjectPrincipal, ErrorResult& aError) {
|
||||||
constexpr nsLiteralString sink = u"ShadowRoot innerHTML"_ns;
|
constexpr nsLiteralString sink = u"ShadowRoot innerHTML"_ns;
|
||||||
|
|
||||||
Maybe<nsAutoString> compliantStringHolder;
|
Maybe<nsAutoString> compliantStringHolder;
|
||||||
const nsAString* compliantString =
|
const nsAString* compliantString =
|
||||||
TrustedTypeUtils::GetTrustedTypesCompliantString(
|
TrustedTypeUtils::GetTrustedTypesCompliantString(
|
||||||
aInnerHTML, sink, kTrustedTypesOnlySinkGroup, *this,
|
aInnerHTML, sink, kTrustedTypesOnlySinkGroup, *this,
|
||||||
compliantStringHolder, aError);
|
aSubjectPrincipal, compliantStringHolder, aError);
|
||||||
if (aError.Failed()) {
|
if (aError.Failed()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,6 +21,7 @@
|
|||||||
|
|
||||||
class nsAtom;
|
class nsAtom;
|
||||||
class nsIContent;
|
class nsIContent;
|
||||||
|
class nsIPrincipal;
|
||||||
|
|
||||||
namespace mozilla {
|
namespace mozilla {
|
||||||
|
|
||||||
@@ -250,13 +251,15 @@ class ShadowRoot final : public DocumentFragment, public DocumentOrShadowRoot {
|
|||||||
}
|
}
|
||||||
|
|
||||||
MOZ_CAN_RUN_SCRIPT
|
MOZ_CAN_RUN_SCRIPT
|
||||||
void SetHTMLUnsafe(const TrustedHTMLOrString& aHTML, ErrorResult& aError);
|
void SetHTMLUnsafe(const TrustedHTMLOrString& aHTML,
|
||||||
|
nsIPrincipal* aSubjectPrincipal, ErrorResult& aError);
|
||||||
|
|
||||||
// @param aInnerHTML will always be of type `NullIsEmptyString`.
|
// @param aInnerHTML will always be of type `NullIsEmptyString`.
|
||||||
void GetInnerHTML(OwningTrustedHTMLOrNullIsEmptyString& aInnerHTML);
|
void GetInnerHTML(OwningTrustedHTMLOrNullIsEmptyString& aInnerHTML);
|
||||||
|
|
||||||
MOZ_CAN_RUN_SCRIPT void SetInnerHTML(
|
MOZ_CAN_RUN_SCRIPT void SetInnerHTML(
|
||||||
const TrustedHTMLOrNullIsEmptyString& aInnerHTML, ErrorResult& aError);
|
const TrustedHTMLOrNullIsEmptyString& aInnerHTML,
|
||||||
|
nsIPrincipal* aSubjectPrincipal, ErrorResult& aError);
|
||||||
|
|
||||||
void GetHTML(const GetHTMLOptions& aOptions, nsAString& aResult);
|
void GetHTML(const GetHTMLOptions& aOptions, nsAString& aResult);
|
||||||
|
|
||||||
|
|||||||
@@ -5867,14 +5867,17 @@ uint32_t computeSanitizationFlags(nsIPrincipal* aPrincipal, int32_t aFlags) {
|
|||||||
void nsContentUtils::SetHTMLUnsafe(FragmentOrElement* aTarget,
|
void nsContentUtils::SetHTMLUnsafe(FragmentOrElement* aTarget,
|
||||||
Element* aContext,
|
Element* aContext,
|
||||||
const TrustedHTMLOrString& aSource,
|
const TrustedHTMLOrString& aSource,
|
||||||
bool aIsShadowRoot, ErrorResult& aError) {
|
bool aIsShadowRoot,
|
||||||
|
nsIPrincipal* aSubjectPrincipal,
|
||||||
|
ErrorResult& aError) {
|
||||||
constexpr nsLiteralString elementSink = u"Element setHTMLUnsafe"_ns;
|
constexpr nsLiteralString elementSink = u"Element setHTMLUnsafe"_ns;
|
||||||
constexpr nsLiteralString shadowRootSink = u"ShadowRoot setHTMLUnsafe"_ns;
|
constexpr nsLiteralString shadowRootSink = u"ShadowRoot setHTMLUnsafe"_ns;
|
||||||
Maybe<nsAutoString> compliantStringHolder;
|
Maybe<nsAutoString> compliantStringHolder;
|
||||||
const nsAString* compliantString =
|
const nsAString* compliantString =
|
||||||
TrustedTypeUtils::GetTrustedTypesCompliantString(
|
TrustedTypeUtils::GetTrustedTypesCompliantString(
|
||||||
aSource, aIsShadowRoot ? shadowRootSink : elementSink,
|
aSource, aIsShadowRoot ? shadowRootSink : elementSink,
|
||||||
kTrustedTypesOnlySinkGroup, *aContext, compliantStringHolder, aError);
|
kTrustedTypesOnlySinkGroup, *aContext, aSubjectPrincipal,
|
||||||
|
compliantStringHolder, aError);
|
||||||
if (aError.Failed()) {
|
if (aError.Failed()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -9805,7 +9808,7 @@ static CheckedInt<uint32_t> ExtraSpaceNeededForAttrEncoding(
|
|||||||
switch (*c) {
|
switch (*c) {
|
||||||
case '"':
|
case '"':
|
||||||
case '&':
|
case '&':
|
||||||
case 0x00A0: // NO-BREAK SPACE
|
case 0x00A0: // NO-BREAK SPACE
|
||||||
case '<':
|
case '<':
|
||||||
case '>':
|
case '>':
|
||||||
++numEncodedChars;
|
++numEncodedChars;
|
||||||
@@ -9826,7 +9829,8 @@ static CheckedInt<uint32_t> ExtraSpaceNeededForAttrEncoding(
|
|||||||
// & in it. We subtract 1 for the null terminator, then 1 more for the
|
// & in it. We subtract 1 for the null terminator, then 1 more for the
|
||||||
// existing character that will be replaced.
|
// existing character that will be replaced.
|
||||||
constexpr uint32_t maxCharExtraSpace =
|
constexpr uint32_t maxCharExtraSpace =
|
||||||
std::max({std::size("""), std::size("&"), std::size(" "), std::size("<"), std::size(">")}) -
|
std::max({std::size("""), std::size("&"), std::size(" "),
|
||||||
|
std::size("<"), std::size(">")}) -
|
||||||
2;
|
2;
|
||||||
static_assert(maxCharExtraSpace < 100, "Possible underflow");
|
static_assert(maxCharExtraSpace < 100, "Possible underflow");
|
||||||
return CheckedInt<uint32_t>(numEncodedChars) * maxCharExtraSpace;
|
return CheckedInt<uint32_t>(numEncodedChars) * maxCharExtraSpace;
|
||||||
|
|||||||
@@ -1895,7 +1895,8 @@ class nsContentUtils {
|
|||||||
static void SetHTMLUnsafe(mozilla::dom::FragmentOrElement* aTarget,
|
static void SetHTMLUnsafe(mozilla::dom::FragmentOrElement* aTarget,
|
||||||
Element* aContext,
|
Element* aContext,
|
||||||
const mozilla::dom::TrustedHTMLOrString& aSource,
|
const mozilla::dom::TrustedHTMLOrString& aSource,
|
||||||
bool aIsShadowRoot, mozilla::ErrorResult& aError);
|
bool aIsShadowRoot, nsIPrincipal* aSubjectPrincipal,
|
||||||
|
mozilla::ErrorResult& aError);
|
||||||
/**
|
/**
|
||||||
* Invoke the fragment parsing algorithm (innerHTML) using the HTML parser.
|
* Invoke the fragment parsing algorithm (innerHTML) using the HTML parser.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -6166,23 +6166,23 @@ nsGlobalWindowInner* nsGlobalWindowInner::InnerForSetTimeoutOrInterval(
|
|||||||
int32_t nsGlobalWindowInner::SetTimeout(
|
int32_t nsGlobalWindowInner::SetTimeout(
|
||||||
JSContext* aCx, const FunctionOrTrustedScriptOrString& aHandler,
|
JSContext* aCx, const FunctionOrTrustedScriptOrString& aHandler,
|
||||||
int32_t aTimeout, const Sequence<JS::Value>& aArguments,
|
int32_t aTimeout, const Sequence<JS::Value>& aArguments,
|
||||||
ErrorResult& aError) {
|
nsIPrincipal* aSubjectPrincipal, ErrorResult& aError) {
|
||||||
return SetTimeoutOrInterval(aCx, aHandler, aTimeout, aArguments, false,
|
return SetTimeoutOrInterval(aCx, aHandler, aTimeout, aArguments, false,
|
||||||
aError);
|
aSubjectPrincipal, aError);
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t nsGlobalWindowInner::SetInterval(
|
int32_t nsGlobalWindowInner::SetInterval(
|
||||||
JSContext* aCx, const FunctionOrTrustedScriptOrString& aHandler,
|
JSContext* aCx, const FunctionOrTrustedScriptOrString& aHandler,
|
||||||
const int32_t aTimeout, const Sequence<JS::Value>& aArguments,
|
const int32_t aTimeout, const Sequence<JS::Value>& aArguments,
|
||||||
ErrorResult& aError) {
|
nsIPrincipal* aSubjectPrincipal, ErrorResult& aError) {
|
||||||
return SetTimeoutOrInterval(aCx, aHandler, aTimeout, aArguments, true,
|
return SetTimeoutOrInterval(aCx, aHandler, aTimeout, aArguments, true,
|
||||||
aError);
|
aSubjectPrincipal, aError);
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t nsGlobalWindowInner::SetTimeoutOrInterval(
|
int32_t nsGlobalWindowInner::SetTimeoutOrInterval(
|
||||||
JSContext* aCx, const FunctionOrTrustedScriptOrString& aHandler,
|
JSContext* aCx, const FunctionOrTrustedScriptOrString& aHandler,
|
||||||
int32_t aTimeout, const Sequence<JS::Value>& aArguments, bool aIsInterval,
|
int32_t aTimeout, const Sequence<JS::Value>& aArguments, bool aIsInterval,
|
||||||
ErrorResult& aError) {
|
nsIPrincipal* aSubjectPrincipal, ErrorResult& aError) {
|
||||||
nsGlobalWindowInner* inner = InnerForSetTimeoutOrInterval(aError);
|
nsGlobalWindowInner* inner = InnerForSetTimeoutOrInterval(aError);
|
||||||
if (!inner) {
|
if (!inner) {
|
||||||
return -1;
|
return -1;
|
||||||
@@ -6191,7 +6191,8 @@ int32_t nsGlobalWindowInner::SetTimeoutOrInterval(
|
|||||||
if (inner != this) {
|
if (inner != this) {
|
||||||
RefPtr<nsGlobalWindowInner> innerRef(inner);
|
RefPtr<nsGlobalWindowInner> innerRef(inner);
|
||||||
return innerRef->SetTimeoutOrInterval(aCx, aHandler, aTimeout, aArguments,
|
return innerRef->SetTimeoutOrInterval(aCx, aHandler, aTimeout, aArguments,
|
||||||
aIsInterval, aError);
|
aIsInterval, aSubjectPrincipal,
|
||||||
|
aError);
|
||||||
}
|
}
|
||||||
|
|
||||||
DebuggerNotificationDispatch(
|
DebuggerNotificationDispatch(
|
||||||
@@ -6229,8 +6230,8 @@ int32_t nsGlobalWindowInner::SetTimeoutOrInterval(
|
|||||||
const nsAString* compliantString =
|
const nsAString* compliantString =
|
||||||
TrustedTypeUtils::GetTrustedTypesCompliantString(
|
TrustedTypeUtils::GetTrustedTypesCompliantString(
|
||||||
aHandler, aIsInterval ? sinkSetInterval : sinkSetTimeout,
|
aHandler, aIsInterval ? sinkSetInterval : sinkSetTimeout,
|
||||||
kTrustedTypesOnlySinkGroup, *pinnedGlobal, compliantStringHolder,
|
kTrustedTypesOnlySinkGroup, *pinnedGlobal, aSubjectPrincipal,
|
||||||
aError);
|
compliantStringHolder, aError);
|
||||||
if (aError.Failed()) {
|
if (aError.Failed()) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -721,7 +721,7 @@ class nsGlobalWindowInner final : public mozilla::dom::EventTarget,
|
|||||||
JSContext* aCx,
|
JSContext* aCx,
|
||||||
const mozilla::dom::FunctionOrTrustedScriptOrString& aHandler,
|
const mozilla::dom::FunctionOrTrustedScriptOrString& aHandler,
|
||||||
int32_t aTimeout, const mozilla::dom::Sequence<JS::Value>& /* unused */,
|
int32_t aTimeout, const mozilla::dom::Sequence<JS::Value>& /* unused */,
|
||||||
mozilla::ErrorResult& aError);
|
nsIPrincipal* aSubjectPrincipal, mozilla::ErrorResult& aError);
|
||||||
|
|
||||||
MOZ_CAN_RUN_SCRIPT
|
MOZ_CAN_RUN_SCRIPT
|
||||||
void ClearTimeout(int32_t aHandle);
|
void ClearTimeout(int32_t aHandle);
|
||||||
@@ -732,7 +732,7 @@ class nsGlobalWindowInner final : public mozilla::dom::EventTarget,
|
|||||||
const mozilla::dom::FunctionOrTrustedScriptOrString& aHandler,
|
const mozilla::dom::FunctionOrTrustedScriptOrString& aHandler,
|
||||||
const int32_t aTimeout,
|
const int32_t aTimeout,
|
||||||
const mozilla::dom::Sequence<JS::Value>& /* unused */,
|
const mozilla::dom::Sequence<JS::Value>& /* unused */,
|
||||||
mozilla::ErrorResult& aError);
|
nsIPrincipal* aSubjectPrincipal, mozilla::ErrorResult& aError);
|
||||||
|
|
||||||
MOZ_CAN_RUN_SCRIPT
|
MOZ_CAN_RUN_SCRIPT
|
||||||
void ClearInterval(int32_t aHandle);
|
void ClearInterval(int32_t aHandle);
|
||||||
@@ -1081,7 +1081,8 @@ class nsGlobalWindowInner final : public mozilla::dom::EventTarget,
|
|||||||
JSContext* aCx,
|
JSContext* aCx,
|
||||||
const mozilla::dom::FunctionOrTrustedScriptOrString& aHandler,
|
const mozilla::dom::FunctionOrTrustedScriptOrString& aHandler,
|
||||||
int32_t aTimeout, const mozilla::dom::Sequence<JS::Value>& aArguments,
|
int32_t aTimeout, const mozilla::dom::Sequence<JS::Value>& aArguments,
|
||||||
bool aIsInterval, mozilla::ErrorResult& aError);
|
bool aIsInterval, nsIPrincipal* aSubjectPrincipal,
|
||||||
|
mozilla::ErrorResult& aError);
|
||||||
|
|
||||||
// Return true if |aTimeout| was cleared while its handler ran.
|
// Return true if |aTimeout| was cleared while its handler ran.
|
||||||
MOZ_CAN_RUN_SCRIPT
|
MOZ_CAN_RUN_SCRIPT
|
||||||
|
|||||||
@@ -2729,7 +2729,8 @@ already_AddRefed<DocumentFragment> nsRange::CreateContextualFragment(
|
|||||||
}
|
}
|
||||||
|
|
||||||
already_AddRefed<DocumentFragment> nsRange::CreateContextualFragment(
|
already_AddRefed<DocumentFragment> nsRange::CreateContextualFragment(
|
||||||
const TrustedHTMLOrString& aFragment, ErrorResult& aRv) const {
|
const TrustedHTMLOrString& aFragment, nsIPrincipal* aSubjectPrincipal,
|
||||||
|
ErrorResult& aRv) const {
|
||||||
if (!mIsPositioned) {
|
if (!mIsPositioned) {
|
||||||
aRv.Throw(NS_ERROR_FAILURE);
|
aRv.Throw(NS_ERROR_FAILURE);
|
||||||
return nullptr;
|
return nullptr;
|
||||||
@@ -2741,7 +2742,7 @@ already_AddRefed<DocumentFragment> nsRange::CreateContextualFragment(
|
|||||||
nsCOMPtr<nsINode> node = mStart.GetContainer();
|
nsCOMPtr<nsINode> node = mStart.GetContainer();
|
||||||
const nsAString* compliantString =
|
const nsAString* compliantString =
|
||||||
TrustedTypeUtils::GetTrustedTypesCompliantString(
|
TrustedTypeUtils::GetTrustedTypesCompliantString(
|
||||||
aFragment, sink, kTrustedTypesOnlySinkGroup, *node,
|
aFragment, sink, kTrustedTypesOnlySinkGroup, *node, aSubjectPrincipal,
|
||||||
compliantStringHolder, aRv);
|
compliantStringHolder, aRv);
|
||||||
if (aRv.Failed()) {
|
if (aRv.Failed()) {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|||||||
@@ -23,6 +23,8 @@
|
|||||||
#include "mozilla/RangeBoundary.h"
|
#include "mozilla/RangeBoundary.h"
|
||||||
#include "mozilla/RefPtr.h"
|
#include "mozilla/RefPtr.h"
|
||||||
|
|
||||||
|
class nsIPrincipal;
|
||||||
|
|
||||||
namespace mozilla {
|
namespace mozilla {
|
||||||
class RectCallback;
|
class RectCallback;
|
||||||
namespace dom {
|
namespace dom {
|
||||||
@@ -216,6 +218,7 @@ class nsRange final : public mozilla::dom::AbstractRange,
|
|||||||
const nsAString& aString, ErrorResult& aError) const;
|
const nsAString& aString, ErrorResult& aError) const;
|
||||||
MOZ_CAN_RUN_SCRIPT already_AddRefed<mozilla::dom::DocumentFragment>
|
MOZ_CAN_RUN_SCRIPT already_AddRefed<mozilla::dom::DocumentFragment>
|
||||||
CreateContextualFragment(const mozilla::dom::TrustedHTMLOrString&,
|
CreateContextualFragment(const mozilla::dom::TrustedHTMLOrString&,
|
||||||
|
nsIPrincipal* aSubjectPrincipal,
|
||||||
ErrorResult& aError) const;
|
ErrorResult& aError) const;
|
||||||
already_AddRefed<mozilla::dom::DocumentFragment> CloneContents(
|
already_AddRefed<mozilla::dom::DocumentFragment> CloneContents(
|
||||||
ErrorResult& aErr);
|
ErrorResult& aErr);
|
||||||
|
|||||||
@@ -392,13 +392,14 @@ void HTMLIFrameElement::GetSrcdoc(OwningTrustedHTMLOrString& aSrcdoc) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void HTMLIFrameElement::SetSrcdoc(const TrustedHTMLOrString& aSrcdoc,
|
void HTMLIFrameElement::SetSrcdoc(const TrustedHTMLOrString& aSrcdoc,
|
||||||
|
nsIPrincipal* aSubjectPrincipal,
|
||||||
ErrorResult& aError) {
|
ErrorResult& aError) {
|
||||||
constexpr nsLiteralString sink = u"HTMLIFrameElement srcdoc"_ns;
|
constexpr nsLiteralString sink = u"HTMLIFrameElement srcdoc"_ns;
|
||||||
|
|
||||||
Maybe<nsAutoString> compliantStringHolder;
|
Maybe<nsAutoString> compliantStringHolder;
|
||||||
const nsAString* compliantString =
|
const nsAString* compliantString =
|
||||||
TrustedTypeUtils::GetTrustedTypesCompliantString(
|
TrustedTypeUtils::GetTrustedTypesCompliantString(
|
||||||
aSrcdoc, sink, kTrustedTypesOnlySinkGroup, *this,
|
aSrcdoc, sink, kTrustedTypesOnlySinkGroup, *this, aSubjectPrincipal,
|
||||||
compliantStringHolder, aError);
|
compliantStringHolder, aError);
|
||||||
if (aError.Failed()) {
|
if (aError.Failed()) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -65,6 +65,7 @@ class HTMLIFrameElement final : public nsGenericHTMLFrameElement {
|
|||||||
void GetSrcdoc(OwningTrustedHTMLOrString& aSrcdoc);
|
void GetSrcdoc(OwningTrustedHTMLOrString& aSrcdoc);
|
||||||
|
|
||||||
MOZ_CAN_RUN_SCRIPT void SetSrcdoc(const TrustedHTMLOrString& aSrcdoc,
|
MOZ_CAN_RUN_SCRIPT void SetSrcdoc(const TrustedHTMLOrString& aSrcdoc,
|
||||||
|
nsIPrincipal* aSubjectPrincipal,
|
||||||
ErrorResult& aError);
|
ErrorResult& aError);
|
||||||
|
|
||||||
void GetName(DOMString& aName) { GetHTMLAttr(nsGkAtoms::name, aName); }
|
void GetName(DOMString& aName) { GetHTMLAttr(nsGkAtoms::name, aName); }
|
||||||
|
|||||||
@@ -165,13 +165,14 @@ void HTMLScriptElement::GetText(OwningTrustedScriptOrString& aValue,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void HTMLScriptElement::SetText(const TrustedScriptOrString& aValue,
|
void HTMLScriptElement::SetText(const TrustedScriptOrString& aValue,
|
||||||
|
nsIPrincipal* aSubjectPrincipal,
|
||||||
ErrorResult& aRv) {
|
ErrorResult& aRv) {
|
||||||
constexpr nsLiteralString sink = u"HTMLScriptElement text"_ns;
|
constexpr nsLiteralString sink = u"HTMLScriptElement text"_ns;
|
||||||
|
|
||||||
Maybe<nsAutoString> compliantStringHolder;
|
Maybe<nsAutoString> compliantStringHolder;
|
||||||
const nsAString* compliantString =
|
const nsAString* compliantString =
|
||||||
TrustedTypeUtils::GetTrustedTypesCompliantString(
|
TrustedTypeUtils::GetTrustedTypesCompliantString(
|
||||||
aValue, sink, kTrustedTypesOnlySinkGroup, *this,
|
aValue, sink, kTrustedTypesOnlySinkGroup, *this, aSubjectPrincipal,
|
||||||
compliantStringHolder, aRv);
|
compliantStringHolder, aRv);
|
||||||
if (aRv.Failed()) {
|
if (aRv.Failed()) {
|
||||||
return;
|
return;
|
||||||
@@ -191,13 +192,14 @@ void HTMLScriptElement::GetInnerText(
|
|||||||
}
|
}
|
||||||
|
|
||||||
void HTMLScriptElement::SetInnerText(
|
void HTMLScriptElement::SetInnerText(
|
||||||
const TrustedScriptOrNullIsEmptyString& aValue, ErrorResult& aError) {
|
const TrustedScriptOrNullIsEmptyString& aValue,
|
||||||
|
nsIPrincipal* aSubjectPrincipal, ErrorResult& aError) {
|
||||||
constexpr nsLiteralString sink = u"HTMLScriptElement innerText"_ns;
|
constexpr nsLiteralString sink = u"HTMLScriptElement innerText"_ns;
|
||||||
|
|
||||||
Maybe<nsAutoString> compliantStringHolder;
|
Maybe<nsAutoString> compliantStringHolder;
|
||||||
const nsAString* compliantString =
|
const nsAString* compliantString =
|
||||||
TrustedTypeUtils::GetTrustedTypesCompliantString(
|
TrustedTypeUtils::GetTrustedTypesCompliantString(
|
||||||
aValue, sink, kTrustedTypesOnlySinkGroup, *this,
|
aValue, sink, kTrustedTypesOnlySinkGroup, *this, aSubjectPrincipal,
|
||||||
compliantStringHolder, aError);
|
compliantStringHolder, aError);
|
||||||
if (aError.Failed()) {
|
if (aError.Failed()) {
|
||||||
return;
|
return;
|
||||||
@@ -226,7 +228,7 @@ void HTMLScriptElement::SetTrustedScriptOrStringTextContent(
|
|||||||
const nsAString* compliantString =
|
const nsAString* compliantString =
|
||||||
TrustedTypeUtils::GetTrustedTypesCompliantString(
|
TrustedTypeUtils::GetTrustedTypesCompliantString(
|
||||||
aTextContent.Value(), sink, kTrustedTypesOnlySinkGroup, *this,
|
aTextContent.Value(), sink, kTrustedTypesOnlySinkGroup, *this,
|
||||||
compliantStringHolder, aError);
|
aSubjectPrincipal, compliantStringHolder, aError);
|
||||||
if (aError.Failed()) {
|
if (aError.Failed()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -238,20 +240,20 @@ void HTMLScriptElement::GetSrc(OwningTrustedScriptURLOrString& aSrc) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void HTMLScriptElement::SetSrc(const TrustedScriptURLOrString& aSrc,
|
void HTMLScriptElement::SetSrc(const TrustedScriptURLOrString& aSrc,
|
||||||
nsIPrincipal* aTriggeringPrincipal,
|
nsIPrincipal* aSubjectPrincipal,
|
||||||
ErrorResult& aRv) {
|
ErrorResult& aRv) {
|
||||||
constexpr nsLiteralString sink = u"HTMLScriptElement src"_ns;
|
constexpr nsLiteralString sink = u"HTMLScriptElement src"_ns;
|
||||||
|
|
||||||
Maybe<nsAutoString> compliantStringHolder;
|
Maybe<nsAutoString> compliantStringHolder;
|
||||||
const nsAString* compliantString =
|
const nsAString* compliantString =
|
||||||
TrustedTypeUtils::GetTrustedTypesCompliantString(
|
TrustedTypeUtils::GetTrustedTypesCompliantString(
|
||||||
aSrc, sink, kTrustedTypesOnlySinkGroup, *this, compliantStringHolder,
|
aSrc, sink, kTrustedTypesOnlySinkGroup, *this, aSubjectPrincipal,
|
||||||
aRv);
|
compliantStringHolder, aRv);
|
||||||
if (aRv.Failed()) {
|
if (aRv.Failed()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
SetHTMLAttr(nsGkAtoms::src, *compliantString, aTriggeringPrincipal, aRv);
|
SetHTMLAttr(nsGkAtoms::src, *compliantString, aSubjectPrincipal, aRv);
|
||||||
}
|
}
|
||||||
|
|
||||||
// variation of this code in SVGScriptElement - check if changes
|
// variation of this code in SVGScriptElement - check if changes
|
||||||
|
|||||||
@@ -78,6 +78,7 @@ class HTMLScriptElement final : public nsGenericHTMLElement,
|
|||||||
ErrorResult& aRv) const;
|
ErrorResult& aRv) const;
|
||||||
|
|
||||||
MOZ_CAN_RUN_SCRIPT void SetText(const TrustedScriptOrString& aValue,
|
MOZ_CAN_RUN_SCRIPT void SetText(const TrustedScriptOrString& aValue,
|
||||||
|
nsIPrincipal* aSubjectPrincipal,
|
||||||
ErrorResult& aRv);
|
ErrorResult& aRv);
|
||||||
|
|
||||||
// @param aValue will always be of type `NullIsEmptyString`.
|
// @param aValue will always be of type `NullIsEmptyString`.
|
||||||
@@ -85,7 +86,8 @@ class HTMLScriptElement final : public nsGenericHTMLElement,
|
|||||||
OwningTrustedScriptOrNullIsEmptyString& aValue, ErrorResult& aError);
|
OwningTrustedScriptOrNullIsEmptyString& aValue, ErrorResult& aError);
|
||||||
|
|
||||||
MOZ_CAN_RUN_SCRIPT void SetInnerText(
|
MOZ_CAN_RUN_SCRIPT void SetInnerText(
|
||||||
const TrustedScriptOrNullIsEmptyString& aValue, ErrorResult& aError);
|
const TrustedScriptOrNullIsEmptyString& aValue,
|
||||||
|
nsIPrincipal* aSubjectPrincipal, ErrorResult& aError);
|
||||||
|
|
||||||
// @param aTextContent will always be of type `String`.
|
// @param aTextContent will always be of type `String`.
|
||||||
MOZ_CAN_RUN_SCRIPT void GetTrustedScriptOrStringTextContent(
|
MOZ_CAN_RUN_SCRIPT void GetTrustedScriptOrStringTextContent(
|
||||||
@@ -112,7 +114,7 @@ class HTMLScriptElement final : public nsGenericHTMLElement,
|
|||||||
void GetSrc(OwningTrustedScriptURLOrString& aSrc);
|
void GetSrc(OwningTrustedScriptURLOrString& aSrc);
|
||||||
|
|
||||||
MOZ_CAN_RUN_SCRIPT void SetSrc(const TrustedScriptURLOrString& aSrc,
|
MOZ_CAN_RUN_SCRIPT void SetSrc(const TrustedScriptURLOrString& aSrc,
|
||||||
nsIPrincipal* aTriggeringPrincipal,
|
nsIPrincipal* aSubjectPrincipal,
|
||||||
ErrorResult& aRv);
|
ErrorResult& aRv);
|
||||||
|
|
||||||
void GetType(nsAString& aType) { GetHTMLAttr(nsGkAtoms::type, aType); }
|
void GetType(nsAString& aType) { GetHTMLAttr(nsGkAtoms::type, aType); }
|
||||||
|
|||||||
@@ -103,10 +103,11 @@ bool HTMLTemplateElement::ParseAttribute(int32_t aNamespaceID,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void HTMLTemplateElement::SetHTMLUnsafe(const TrustedHTMLOrString& aHTML,
|
void HTMLTemplateElement::SetHTMLUnsafe(const TrustedHTMLOrString& aHTML,
|
||||||
|
nsIPrincipal* aSubjectPrincipal,
|
||||||
ErrorResult& aError) {
|
ErrorResult& aError) {
|
||||||
RefPtr<DocumentFragment> content = mContent;
|
RefPtr<DocumentFragment> content = mContent;
|
||||||
nsContentUtils::SetHTMLUnsafe(content, this, aHTML, false /*aIsShadowRoot*/,
|
nsContentUtils::SetHTMLUnsafe(content, this, aHTML, false /*aIsShadowRoot*/,
|
||||||
aError);
|
aSubjectPrincipal, aError);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace mozilla::dom
|
} // namespace mozilla::dom
|
||||||
|
|||||||
@@ -74,6 +74,7 @@ class HTMLTemplateElement final : public nsGenericHTMLElement {
|
|||||||
|
|
||||||
MOZ_CAN_RUN_SCRIPT
|
MOZ_CAN_RUN_SCRIPT
|
||||||
void SetHTMLUnsafe(const TrustedHTMLOrString& aHTML,
|
void SetHTMLUnsafe(const TrustedHTMLOrString& aHTML,
|
||||||
|
nsIPrincipal* aSubjectPrincipal,
|
||||||
ErrorResult& aError) final;
|
ErrorResult& aError) final;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|||||||
@@ -412,7 +412,8 @@ template <typename ExpectedType, typename TrustedTypeOrString,
|
|||||||
MOZ_CAN_RUN_SCRIPT inline const nsAString* GetTrustedTypesCompliantString(
|
MOZ_CAN_RUN_SCRIPT inline const nsAString* GetTrustedTypesCompliantString(
|
||||||
const TrustedTypeOrString& aInput, const nsAString& aSink,
|
const TrustedTypeOrString& aInput, const nsAString& aSink,
|
||||||
const nsAString& aSinkGroup, NodeOrGlobalObject& aNodeOrGlobalObject,
|
const nsAString& aSinkGroup, NodeOrGlobalObject& aNodeOrGlobalObject,
|
||||||
Maybe<nsAutoString>& aResultHolder, ErrorResult& aError) {
|
nsIPrincipal* aPrincipalOrNull, Maybe<nsAutoString>& aResultHolder,
|
||||||
|
ErrorResult& aError) {
|
||||||
MOZ_ASSERT(aSinkGroup == kTrustedTypesOnlySinkGroup);
|
MOZ_ASSERT(aSinkGroup == kTrustedTypesOnlySinkGroup);
|
||||||
if (!StaticPrefs::dom_security_trusted_types_enabled()) {
|
if (!StaticPrefs::dom_security_trusted_types_enabled()) {
|
||||||
// A trusted type might've been created before the pref was set to `false`,
|
// A trusted type might've been created before the pref was set to `false`,
|
||||||
@@ -557,9 +558,11 @@ MOZ_CAN_RUN_SCRIPT inline const nsAString* GetTrustedTypesCompliantString(
|
|||||||
const nsAString* GetTrustedTypesCompliantString( \
|
const nsAString* GetTrustedTypesCompliantString( \
|
||||||
const _trustedTypeOrString& aInput, const nsAString& aSink, \
|
const _trustedTypeOrString& aInput, const nsAString& aSink, \
|
||||||
const nsAString& aSinkGroup, _nodeOrGlobalObject& aNodeOrGlobal, \
|
const nsAString& aSinkGroup, _nodeOrGlobalObject& aNodeOrGlobal, \
|
||||||
Maybe<nsAutoString>& aResultHolder, ErrorResult& aError) { \
|
nsIPrincipal* aPrincipalOrNull, Maybe<nsAutoString>& aResultHolder, \
|
||||||
|
ErrorResult& aError) { \
|
||||||
return GetTrustedTypesCompliantString<_expectedType>( \
|
return GetTrustedTypesCompliantString<_expectedType>( \
|
||||||
aInput, aSink, aSinkGroup, aNodeOrGlobal, aResultHolder, aError); \
|
aInput, aSink, aSinkGroup, aNodeOrGlobal, aPrincipalOrNull, \
|
||||||
|
aResultHolder, aError); \
|
||||||
}
|
}
|
||||||
|
|
||||||
IMPL_GET_TRUSTED_TYPES_COMPLIANT_STRING(TrustedHTMLOrString, TrustedHTML,
|
IMPL_GET_TRUSTED_TYPES_COMPLIANT_STRING(TrustedHTMLOrString, TrustedHTML,
|
||||||
@@ -589,7 +592,7 @@ GetTrustedTypesCompliantStringForTrustedHTML(const nsAString& aInput,
|
|||||||
Maybe<nsAutoString>& aResultHolder,
|
Maybe<nsAutoString>& aResultHolder,
|
||||||
ErrorResult& aError) {
|
ErrorResult& aError) {
|
||||||
return GetTrustedTypesCompliantString<TrustedHTML>(
|
return GetTrustedTypesCompliantString<TrustedHTML>(
|
||||||
&aInput, aSink, aSinkGroup, aNode, aResultHolder, aError);
|
&aInput, aSink, aSinkGroup, aNode, nullptr, aResultHolder, aError);
|
||||||
}
|
}
|
||||||
|
|
||||||
MOZ_CAN_RUN_SCRIPT const nsAString*
|
MOZ_CAN_RUN_SCRIPT const nsAString*
|
||||||
@@ -598,7 +601,8 @@ GetTrustedTypesCompliantStringForTrustedScript(
|
|||||||
const nsAString& aSinkGroup, nsIGlobalObject& aGlobalObject,
|
const nsAString& aSinkGroup, nsIGlobalObject& aGlobalObject,
|
||||||
Maybe<nsAutoString>& aResultHolder, ErrorResult& aError) {
|
Maybe<nsAutoString>& aResultHolder, ErrorResult& aError) {
|
||||||
return GetTrustedTypesCompliantString<TrustedScript>(
|
return GetTrustedTypesCompliantString<TrustedScript>(
|
||||||
&aInput, aSink, aSinkGroup, aGlobalObject, aResultHolder, aError);
|
&aInput, aSink, aSinkGroup, aGlobalObject, nullptr, aResultHolder,
|
||||||
|
aError);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GetTrustedTypeDataForAttribute(const nsAtom* aElementName,
|
bool GetTrustedTypeDataForAttribute(const nsAtom* aElementName,
|
||||||
@@ -706,16 +710,16 @@ MOZ_CAN_RUN_SCRIPT const nsAString* GetTrustedTypesCompliantAttributeValue(
|
|||||||
switch (expectedType) {
|
switch (expectedType) {
|
||||||
case TrustedType::TrustedHTML:
|
case TrustedType::TrustedHTML:
|
||||||
return GetTrustedTypesCompliantString<TrustedHTML>(
|
return GetTrustedTypesCompliantString<TrustedHTML>(
|
||||||
input, sink, kTrustedTypesOnlySinkGroup, aElement, aResultHolder,
|
input, sink, kTrustedTypesOnlySinkGroup, aElement, nullptr,
|
||||||
aError);
|
aResultHolder, aError);
|
||||||
case TrustedType::TrustedScript:
|
case TrustedType::TrustedScript:
|
||||||
return GetTrustedTypesCompliantString<TrustedScript>(
|
return GetTrustedTypesCompliantString<TrustedScript>(
|
||||||
input, sink, kTrustedTypesOnlySinkGroup, aElement, aResultHolder,
|
input, sink, kTrustedTypesOnlySinkGroup, aElement, nullptr,
|
||||||
aError);
|
aResultHolder, aError);
|
||||||
case TrustedType::TrustedScriptURL:
|
case TrustedType::TrustedScriptURL:
|
||||||
return GetTrustedTypesCompliantString<TrustedScriptURL>(
|
return GetTrustedTypesCompliantString<TrustedScriptURL>(
|
||||||
input, sink, kTrustedTypesOnlySinkGroup, aElement, aResultHolder,
|
input, sink, kTrustedTypesOnlySinkGroup, aElement, nullptr,
|
||||||
aError);
|
aResultHolder, aError);
|
||||||
}
|
}
|
||||||
MOZ_ASSERT_UNREACHABLE();
|
MOZ_ASSERT_UNREACHABLE();
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
#include "js/TypeDecls.h"
|
#include "js/TypeDecls.h"
|
||||||
|
|
||||||
class nsIContentSecurityPolicy;
|
class nsIContentSecurityPolicy;
|
||||||
|
class nsIPrincipal;
|
||||||
|
|
||||||
namespace mozilla {
|
namespace mozilla {
|
||||||
|
|
||||||
@@ -70,39 +71,48 @@ nsString GetTrustedTypeName(TrustedType aTrustedType);
|
|||||||
MOZ_CAN_RUN_SCRIPT const nsAString* GetTrustedTypesCompliantString(
|
MOZ_CAN_RUN_SCRIPT const nsAString* GetTrustedTypesCompliantString(
|
||||||
const TrustedHTMLOrString& aInput, const nsAString& aSink,
|
const TrustedHTMLOrString& aInput, const nsAString& aSink,
|
||||||
const nsAString& aSinkGroup, const nsINode& aNode,
|
const nsAString& aSinkGroup, const nsINode& aNode,
|
||||||
Maybe<nsAutoString>& aResultHolder, ErrorResult& aError);
|
nsIPrincipal* aPrincipalOrNull, Maybe<nsAutoString>& aResultHolder,
|
||||||
|
ErrorResult& aError);
|
||||||
MOZ_CAN_RUN_SCRIPT const nsAString* GetTrustedTypesCompliantString(
|
MOZ_CAN_RUN_SCRIPT const nsAString* GetTrustedTypesCompliantString(
|
||||||
const TrustedHTMLOrNullIsEmptyString& aInput, const nsAString& aSink,
|
const TrustedHTMLOrNullIsEmptyString& aInput, const nsAString& aSink,
|
||||||
const nsAString& aSinkGroup, const nsINode& aNode,
|
const nsAString& aSinkGroup, const nsINode& aNode,
|
||||||
Maybe<nsAutoString>& aResultHolder, ErrorResult& aError);
|
nsIPrincipal* aPrincipalOrNull, Maybe<nsAutoString>& aResultHolder,
|
||||||
|
ErrorResult& aError);
|
||||||
MOZ_CAN_RUN_SCRIPT const nsAString* GetTrustedTypesCompliantString(
|
MOZ_CAN_RUN_SCRIPT const nsAString* GetTrustedTypesCompliantString(
|
||||||
const TrustedHTMLOrString& aInput, const nsAString& aSink,
|
const TrustedHTMLOrString& aInput, const nsAString& aSink,
|
||||||
const nsAString& aSinkGroup, nsIGlobalObject& aGlobalObject,
|
const nsAString& aSinkGroup, nsIGlobalObject& aGlobalObject,
|
||||||
Maybe<nsAutoString>& aResultHolder, ErrorResult& aError);
|
nsIPrincipal* aPrincipalOrNull, Maybe<nsAutoString>& aResultHolder,
|
||||||
|
ErrorResult& aError);
|
||||||
MOZ_CAN_RUN_SCRIPT const nsAString* GetTrustedTypesCompliantString(
|
MOZ_CAN_RUN_SCRIPT const nsAString* GetTrustedTypesCompliantString(
|
||||||
const TrustedScriptOrString& aInput, const nsAString& aSink,
|
const TrustedScriptOrString& aInput, const nsAString& aSink,
|
||||||
const nsAString& aSinkGroup, const nsINode& aNode,
|
const nsAString& aSinkGroup, const nsINode& aNode,
|
||||||
Maybe<nsAutoString>& aResultHolder, ErrorResult& aError);
|
nsIPrincipal* aPrincipalOrNull, Maybe<nsAutoString>& aResultHolder,
|
||||||
|
ErrorResult& aError);
|
||||||
MOZ_CAN_RUN_SCRIPT const nsAString* GetTrustedTypesCompliantString(
|
MOZ_CAN_RUN_SCRIPT const nsAString* GetTrustedTypesCompliantString(
|
||||||
const TrustedScriptOrNullIsEmptyString& aInput, const nsAString& aSink,
|
const TrustedScriptOrNullIsEmptyString& aInput, const nsAString& aSink,
|
||||||
const nsAString& aSinkGroup, const nsINode& aNode,
|
const nsAString& aSinkGroup, const nsINode& aNode,
|
||||||
Maybe<nsAutoString>& aResultHolder, ErrorResult& aError);
|
nsIPrincipal* aPrincipalOrNull, Maybe<nsAutoString>& aResultHolder,
|
||||||
|
ErrorResult& aError);
|
||||||
MOZ_CAN_RUN_SCRIPT const nsAString* GetTrustedTypesCompliantString(
|
MOZ_CAN_RUN_SCRIPT const nsAString* GetTrustedTypesCompliantString(
|
||||||
const FunctionOrTrustedScriptOrString& aInput, const nsAString& aSink,
|
const FunctionOrTrustedScriptOrString& aInput, const nsAString& aSink,
|
||||||
const nsAString& aSinkGroup, nsIGlobalObject& aGlobalObject,
|
const nsAString& aSinkGroup, nsIGlobalObject& aGlobalObject,
|
||||||
Maybe<nsAutoString>& aResultHolder, ErrorResult& aError);
|
nsIPrincipal* aPrincipalOrNull, Maybe<nsAutoString>& aResultHolder,
|
||||||
|
ErrorResult& aError);
|
||||||
MOZ_CAN_RUN_SCRIPT const nsAString* GetTrustedTypesCompliantString(
|
MOZ_CAN_RUN_SCRIPT const nsAString* GetTrustedTypesCompliantString(
|
||||||
const TrustedScriptURLOrString& aInput, const nsAString& aSink,
|
const TrustedScriptURLOrString& aInput, const nsAString& aSink,
|
||||||
const nsAString& aSinkGroup, const nsINode& aNode,
|
const nsAString& aSinkGroup, const nsINode& aNode,
|
||||||
Maybe<nsAutoString>& aResultHolder, ErrorResult& aError);
|
nsIPrincipal* aPrincipalOrNull, Maybe<nsAutoString>& aResultHolder,
|
||||||
|
ErrorResult& aError);
|
||||||
MOZ_CAN_RUN_SCRIPT const nsAString* GetTrustedTypesCompliantString(
|
MOZ_CAN_RUN_SCRIPT const nsAString* GetTrustedTypesCompliantString(
|
||||||
const TrustedScriptURLOrUSVString& aInput, const nsAString& aSink,
|
const TrustedScriptURLOrUSVString& aInput, const nsAString& aSink,
|
||||||
const nsAString& aSinkGroup, nsIGlobalObject& aGlobalObject,
|
const nsAString& aSinkGroup, nsIGlobalObject& aGlobalObject,
|
||||||
Maybe<nsAutoString>& aResultHolder, ErrorResult& aError);
|
nsIPrincipal* aPrincipalOrNull, Maybe<nsAutoString>& aResultHolder,
|
||||||
|
ErrorResult& aError);
|
||||||
MOZ_CAN_RUN_SCRIPT const nsAString* GetTrustedTypesCompliantString(
|
MOZ_CAN_RUN_SCRIPT const nsAString* GetTrustedTypesCompliantString(
|
||||||
const OwningTrustedScriptURLOrString& aInput, const nsAString& aSink,
|
const OwningTrustedScriptURLOrString& aInput, const nsAString& aSink,
|
||||||
const nsAString& aSinkGroup, nsIGlobalObject& aGlobalObject,
|
const nsAString& aSinkGroup, nsIGlobalObject& aGlobalObject,
|
||||||
Maybe<nsAutoString>& aResultHolder, ErrorResult& aError);
|
nsIPrincipal* aPrincipalOrNull, Maybe<nsAutoString>& aResultHolder,
|
||||||
|
ErrorResult& aError);
|
||||||
MOZ_CAN_RUN_SCRIPT const nsAString*
|
MOZ_CAN_RUN_SCRIPT const nsAString*
|
||||||
GetTrustedTypesCompliantStringForTrustedHTML(const nsAString& aInput,
|
GetTrustedTypesCompliantStringForTrustedHTML(const nsAString& aInput,
|
||||||
const nsAString& aSink,
|
const nsAString& aSink,
|
||||||
|
|||||||
@@ -166,7 +166,7 @@ JSObject* ServiceWorkerContainer::WrapObject(
|
|||||||
|
|
||||||
already_AddRefed<Promise> ServiceWorkerContainer::Register(
|
already_AddRefed<Promise> ServiceWorkerContainer::Register(
|
||||||
const TrustedScriptURLOrUSVString& aScriptURL,
|
const TrustedScriptURLOrUSVString& aScriptURL,
|
||||||
const RegistrationOptions& aOptions, const CallerType aCallerType,
|
const RegistrationOptions& aOptions, nsIPrincipal* aSubjectPrincipal,
|
||||||
ErrorResult& aRv) {
|
ErrorResult& aRv) {
|
||||||
AUTO_PROFILER_MARKER_UNTYPED("SWC Register", DOM, {});
|
AUTO_PROFILER_MARKER_UNTYPED("SWC Register", DOM, {});
|
||||||
|
|
||||||
@@ -196,7 +196,7 @@ already_AddRefed<Promise> ServiceWorkerContainer::Register(
|
|||||||
const nsAString* compliantString =
|
const nsAString* compliantString =
|
||||||
TrustedTypeUtils::GetTrustedTypesCompliantString(
|
TrustedTypeUtils::GetTrustedTypesCompliantString(
|
||||||
aScriptURL, sink, kTrustedTypesOnlySinkGroup, *global,
|
aScriptURL, sink, kTrustedTypesOnlySinkGroup, *global,
|
||||||
compliantStringHolder, aRv);
|
aSubjectPrincipal, compliantStringHolder, aRv);
|
||||||
if (aRv.Failed()) {
|
if (aRv.Failed()) {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
#include "mozilla/dom/ServiceWorkerUtils.h"
|
#include "mozilla/dom/ServiceWorkerUtils.h"
|
||||||
|
|
||||||
class nsIGlobalWindow;
|
class nsIGlobalWindow;
|
||||||
|
class nsIPrincipal;
|
||||||
|
|
||||||
namespace mozilla::dom {
|
namespace mozilla::dom {
|
||||||
|
|
||||||
@@ -54,7 +55,7 @@ class ServiceWorkerContainer final : public DOMEventTargetHelper {
|
|||||||
|
|
||||||
MOZ_CAN_RUN_SCRIPT already_AddRefed<Promise> Register(
|
MOZ_CAN_RUN_SCRIPT already_AddRefed<Promise> Register(
|
||||||
const TrustedScriptURLOrUSVString& aScriptURL,
|
const TrustedScriptURLOrUSVString& aScriptURL,
|
||||||
const RegistrationOptions& aOptions, const CallerType aCallerType,
|
const RegistrationOptions& aOptions, nsIPrincipal* aSubjectPrincipal,
|
||||||
ErrorResult& aRv);
|
ErrorResult& aRv);
|
||||||
|
|
||||||
already_AddRefed<ServiceWorker> GetController();
|
already_AddRefed<ServiceWorker> GetController();
|
||||||
|
|||||||
@@ -10,6 +10,8 @@
|
|||||||
#include "mozilla/SVGAnimatedClassOrString.h"
|
#include "mozilla/SVGAnimatedClassOrString.h"
|
||||||
#include "mozilla/dom/SVGElement.h"
|
#include "mozilla/dom/SVGElement.h"
|
||||||
|
|
||||||
|
class nsIPrincipal;
|
||||||
|
|
||||||
namespace mozilla::dom {
|
namespace mozilla::dom {
|
||||||
|
|
||||||
class OwningTrustedScriptURLOrString;
|
class OwningTrustedScriptURLOrString;
|
||||||
@@ -33,9 +35,10 @@ class DOMSVGAnimatedString final : public nsWrapperCache {
|
|||||||
mVal->GetBaseValue(aResult, mSVGElement);
|
mVal->GetBaseValue(aResult, mSVGElement);
|
||||||
}
|
}
|
||||||
MOZ_CAN_RUN_SCRIPT void SetBaseVal(const TrustedScriptURLOrString& aValue,
|
MOZ_CAN_RUN_SCRIPT void SetBaseVal(const TrustedScriptURLOrString& aValue,
|
||||||
|
nsIPrincipal* aSubjectPrincipal,
|
||||||
ErrorResult& aRv) {
|
ErrorResult& aRv) {
|
||||||
RefPtr<SVGElement> svgElement = mSVGElement;
|
RefPtr<SVGElement> svgElement = mSVGElement;
|
||||||
mVal->SetBaseValue(aValue, svgElement, true, aRv);
|
mVal->SetBaseValue(aValue, svgElement, true, aSubjectPrincipal, aRv);
|
||||||
}
|
}
|
||||||
void GetAnimVal(nsAString& aResult) {
|
void GetAnimVal(nsAString& aResult) {
|
||||||
mSVGElement->FlushAnimations();
|
mSVGElement->FlushAnimations();
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ void SVGAnimatedClassOrString::RemoveTearoff() {
|
|||||||
|
|
||||||
void SVGAnimatedClassOrString::SetBaseValue(
|
void SVGAnimatedClassOrString::SetBaseValue(
|
||||||
const TrustedScriptURLOrString& aValue, SVGElement* aSVGElement,
|
const TrustedScriptURLOrString& aValue, SVGElement* aSVGElement,
|
||||||
bool aDoSetAttr, ErrorResult&) {
|
bool aDoSetAttr, nsIPrincipal*, ErrorResult&) {
|
||||||
// The spec is not super explicit, but it makes sense to default to the
|
// The spec is not super explicit, but it makes sense to default to the
|
||||||
// associated data value for TrustedScriptURL values.
|
// associated data value for TrustedScriptURL values.
|
||||||
// https://github.com/w3c/svgwg/issues/961
|
// https://github.com/w3c/svgwg/issues/961
|
||||||
|
|||||||
@@ -10,6 +10,8 @@
|
|||||||
#include "nsStringFwd.h"
|
#include "nsStringFwd.h"
|
||||||
#include "mozilla/AlreadyAddRefed.h"
|
#include "mozilla/AlreadyAddRefed.h"
|
||||||
|
|
||||||
|
class nsIPrincipal;
|
||||||
|
|
||||||
namespace mozilla {
|
namespace mozilla {
|
||||||
|
|
||||||
class ErrorResult;
|
class ErrorResult;
|
||||||
@@ -31,7 +33,7 @@ class SVGAnimatedClassOrString {
|
|||||||
bool aDoSetAttr) = 0;
|
bool aDoSetAttr) = 0;
|
||||||
MOZ_CAN_RUN_SCRIPT virtual void SetBaseValue(
|
MOZ_CAN_RUN_SCRIPT virtual void SetBaseValue(
|
||||||
const TrustedScriptURLOrString& aValue, SVGElement* aSVGElement,
|
const TrustedScriptURLOrString& aValue, SVGElement* aSVGElement,
|
||||||
bool aDoSetAttr, ErrorResult& aRv);
|
bool aDoSetAttr, nsIPrincipal* aSubjectPrincipal, ErrorResult& aRv);
|
||||||
virtual void GetBaseValue(nsAString& aValue,
|
virtual void GetBaseValue(nsAString& aValue,
|
||||||
const SVGElement* aSVGElement) const = 0;
|
const SVGElement* aSVGElement) const = 0;
|
||||||
virtual void GetBaseValue(OwningTrustedScriptURLOrString& aValue,
|
virtual void GetBaseValue(OwningTrustedScriptURLOrString& aValue,
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ nsresult SVGAnimatedString::SMILString::SetAnimValue(const SMILValue& aValue) {
|
|||||||
|
|
||||||
void SVGAnimatedScriptHrefString::SetBaseValue(
|
void SVGAnimatedScriptHrefString::SetBaseValue(
|
||||||
const TrustedScriptURLOrString& aValue, SVGElement* aSVGElement,
|
const TrustedScriptURLOrString& aValue, SVGElement* aSVGElement,
|
||||||
bool aDoSetAttr, ErrorResult& aRv) {
|
bool aDoSetAttr, nsIPrincipal* aSubjectPrincipal, ErrorResult& aRv) {
|
||||||
// https://svgwg.org/svg2-draft/single-page.html#types-InterfaceSVGAnimatedString
|
// https://svgwg.org/svg2-draft/single-page.html#types-InterfaceSVGAnimatedString
|
||||||
// See https://github.com/w3c/svgwg/pull/934
|
// See https://github.com/w3c/svgwg/pull/934
|
||||||
MOZ_ASSERT(aSVGElement->IsSVGElement(nsGkAtoms::script));
|
MOZ_ASSERT(aSVGElement->IsSVGElement(nsGkAtoms::script));
|
||||||
@@ -108,7 +108,7 @@ void SVGAnimatedScriptHrefString::SetBaseValue(
|
|||||||
const nsAString* compliantString =
|
const nsAString* compliantString =
|
||||||
TrustedTypeUtils::GetTrustedTypesCompliantString(
|
TrustedTypeUtils::GetTrustedTypesCompliantString(
|
||||||
aValue, sink, kTrustedTypesOnlySinkGroup, *svgElement,
|
aValue, sink, kTrustedTypesOnlySinkGroup, *svgElement,
|
||||||
compliantStringHolder, aRv);
|
aSubjectPrincipal, compliantStringHolder, aRv);
|
||||||
if (aRv.Failed()) {
|
if (aRv.Failed()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,9 +41,10 @@ class SVGAnimatedString : public SVGAnimatedClassOrString {
|
|||||||
bool aDoSetAttr) override;
|
bool aDoSetAttr) override;
|
||||||
MOZ_CAN_RUN_SCRIPT void SetBaseValue(const TrustedScriptURLOrString& aValue,
|
MOZ_CAN_RUN_SCRIPT void SetBaseValue(const TrustedScriptURLOrString& aValue,
|
||||||
SVGElement* aSVGElement, bool aDoSetAttr,
|
SVGElement* aSVGElement, bool aDoSetAttr,
|
||||||
|
nsIPrincipal* aSubjectPrincipal,
|
||||||
ErrorResult& aRv) override {
|
ErrorResult& aRv) override {
|
||||||
SVGAnimatedClassOrString::SetBaseValue(aValue, aSVGElement, aDoSetAttr,
|
SVGAnimatedClassOrString::SetBaseValue(aValue, aSVGElement, aDoSetAttr,
|
||||||
aRv);
|
aSubjectPrincipal, aRv);
|
||||||
}
|
}
|
||||||
void GetBaseValue(nsAString& aValue,
|
void GetBaseValue(nsAString& aValue,
|
||||||
const SVGElement* aSVGElement) const override {
|
const SVGElement* aSVGElement) const override {
|
||||||
@@ -114,6 +115,7 @@ class SVGAnimatedScriptHrefString final : public SVGAnimatedString {
|
|||||||
using TrustedScriptURLOrString = dom::TrustedScriptURLOrString;
|
using TrustedScriptURLOrString = dom::TrustedScriptURLOrString;
|
||||||
MOZ_CAN_RUN_SCRIPT void SetBaseValue(const TrustedScriptURLOrString& aValue,
|
MOZ_CAN_RUN_SCRIPT void SetBaseValue(const TrustedScriptURLOrString& aValue,
|
||||||
SVGElement* aSVGElement, bool aDoSetAttr,
|
SVGElement* aSVGElement, bool aDoSetAttr,
|
||||||
|
nsIPrincipal* aSubjectPrincipal,
|
||||||
ErrorResult& aRv) override;
|
ErrorResult& aRv) override;
|
||||||
SVGAnimatedScriptHrefString() = default;
|
SVGAnimatedScriptHrefString() = default;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ interface DOMParser {
|
|||||||
[Throws]
|
[Throws]
|
||||||
constructor();
|
constructor();
|
||||||
|
|
||||||
[NewObject, Throws, UseCounter]
|
[NewObject, NeedsSubjectPrincipal=NonSystem, Throws, UseCounter]
|
||||||
Document parseFromString((TrustedHTML or DOMString) str, SupportedType type);
|
Document parseFromString((TrustedHTML or DOMString) str, SupportedType type);
|
||||||
|
|
||||||
// Mozilla-specific stuff
|
// Mozilla-specific stuff
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ interface Document : Node {
|
|||||||
|
|
||||||
// https://html.spec.whatwg.org/multipage/dom.html#the-document-object
|
// https://html.spec.whatwg.org/multipage/dom.html#the-document-object
|
||||||
partial interface Document {
|
partial interface Document {
|
||||||
[Throws]
|
[Throws, NeedsSubjectPrincipal=NonSystem]
|
||||||
static Document parseHTMLUnsafe((TrustedHTML or DOMString) html);
|
static Document parseHTMLUnsafe((TrustedHTML or DOMString) html);
|
||||||
|
|
||||||
[PutForwards=href, LegacyUnforgeable] readonly attribute Location? location;
|
[PutForwards=href, LegacyUnforgeable] readonly attribute Location? location;
|
||||||
|
|||||||
@@ -262,9 +262,9 @@ partial interface Element {
|
|||||||
partial interface Element {
|
partial interface Element {
|
||||||
[CEReactions, SetterNeedsSubjectPrincipal=NonSystem, Pure, SetterThrows, GetterCanOOM]
|
[CEReactions, SetterNeedsSubjectPrincipal=NonSystem, Pure, SetterThrows, GetterCanOOM]
|
||||||
attribute (TrustedHTML or [LegacyNullToEmptyString] DOMString) innerHTML;
|
attribute (TrustedHTML or [LegacyNullToEmptyString] DOMString) innerHTML;
|
||||||
[CEReactions, Pure, SetterThrows]
|
[CEReactions, SetterNeedsSubjectPrincipal=NonSystem, Pure, SetterThrows]
|
||||||
attribute (TrustedHTML or [LegacyNullToEmptyString] DOMString) outerHTML;
|
attribute (TrustedHTML or [LegacyNullToEmptyString] DOMString) outerHTML;
|
||||||
[CEReactions, Throws]
|
[CEReactions, NeedsSubjectPrincipal=NonSystem, Throws]
|
||||||
undefined insertAdjacentHTML(DOMString position, (TrustedHTML or DOMString) text);
|
undefined insertAdjacentHTML(DOMString position, (TrustedHTML or DOMString) text);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -406,7 +406,7 @@ dictionary GetHTMLOptions {
|
|||||||
partial interface Element {
|
partial interface Element {
|
||||||
// https://html.spec.whatwg.org/#dom-element-sethtmlunsafe
|
// https://html.spec.whatwg.org/#dom-element-sethtmlunsafe
|
||||||
/* TODO: optional SetHTMLUnsafeOptions options = {} */
|
/* TODO: optional SetHTMLUnsafeOptions options = {} */
|
||||||
[Throws]
|
[NeedsSubjectPrincipal=NonSystem, Throws]
|
||||||
undefined setHTMLUnsafe((TrustedHTML or DOMString) html);
|
undefined setHTMLUnsafe((TrustedHTML or DOMString) html);
|
||||||
DOMString getHTML(optional GetHTMLOptions options = {});
|
DOMString getHTML(optional GetHTMLOptions options = {});
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ interface HTMLIFrameElement : HTMLElement {
|
|||||||
|
|
||||||
[CEReactions, SetterNeedsSubjectPrincipal=NonSystem, SetterThrows, Pure]
|
[CEReactions, SetterNeedsSubjectPrincipal=NonSystem, SetterThrows, Pure]
|
||||||
attribute DOMString src;
|
attribute DOMString src;
|
||||||
[CEReactions, SetterThrows, Pure]
|
[CEReactions, SetterNeedsSubjectPrincipal=NonSystem, SetterThrows, Pure]
|
||||||
attribute (TrustedHTML or DOMString) srcdoc;
|
attribute (TrustedHTML or DOMString) srcdoc;
|
||||||
[CEReactions, SetterThrows, Pure]
|
[CEReactions, SetterThrows, Pure]
|
||||||
attribute DOMString name;
|
attribute DOMString name;
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ interface HTMLScriptElement : HTMLElement {
|
|||||||
attribute DOMString? crossOrigin;
|
attribute DOMString? crossOrigin;
|
||||||
[CEReactions, SetterThrows]
|
[CEReactions, SetterThrows]
|
||||||
attribute DOMString referrerPolicy;
|
attribute DOMString referrerPolicy;
|
||||||
[CEReactions, Throws]
|
[CEReactions, SetterNeedsSubjectPrincipal=NonSystem, Throws]
|
||||||
attribute (TrustedScript or DOMString) text;
|
attribute (TrustedScript or DOMString) text;
|
||||||
[Pref="dom.element.blocking.enabled", SameObject, PutForwards=value]
|
[Pref="dom.element.blocking.enabled", SameObject, PutForwards=value]
|
||||||
readonly attribute DOMTokenList blocking;
|
readonly attribute DOMTokenList blocking;
|
||||||
@@ -54,7 +54,7 @@ partial interface HTMLScriptElement {
|
|||||||
|
|
||||||
// https://w3c.github.io/trusted-types/dist/spec/#enforcement-in-scripts
|
// https://w3c.github.io/trusted-types/dist/spec/#enforcement-in-scripts
|
||||||
partial interface HTMLScriptElement {
|
partial interface HTMLScriptElement {
|
||||||
[CEReactions, Throws] attribute (TrustedScript or [LegacyNullToEmptyString] DOMString) innerText;
|
[CEReactions, SetterNeedsSubjectPrincipal=NonSystem, Throws] attribute (TrustedScript or [LegacyNullToEmptyString] DOMString) innerText;
|
||||||
[CEReactions, SetterThrows, GetterCanOOM,
|
[CEReactions, SetterThrows, GetterCanOOM,
|
||||||
SetterNeedsSubjectPrincipal=NonSystem, BinaryName="trustedScriptOrStringTextContent"] attribute (TrustedScript or DOMString)? textContent;
|
SetterNeedsSubjectPrincipal=NonSystem, BinaryName="trustedScriptOrStringTextContent"] attribute (TrustedScript or DOMString)? textContent;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ interface Range : AbstractRange {
|
|||||||
|
|
||||||
// http://domparsing.spec.whatwg.org/#dom-range-createcontextualfragment
|
// http://domparsing.spec.whatwg.org/#dom-range-createcontextualfragment
|
||||||
partial interface Range {
|
partial interface Range {
|
||||||
[CEReactions, Throws, UseCounter]
|
[CEReactions, NeedsSubjectPrincipal=NonSystem, Throws, UseCounter]
|
||||||
DocumentFragment createContextualFragment((TrustedHTML or DOMString) fragment);
|
DocumentFragment createContextualFragment((TrustedHTML or DOMString) fragment);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,8 @@
|
|||||||
|
|
||||||
[Exposed=Window]
|
[Exposed=Window]
|
||||||
interface SVGAnimatedString {
|
interface SVGAnimatedString {
|
||||||
[SetterThrows] attribute (TrustedScriptURL or DOMString) baseVal;
|
[SetterThrows, SetterNeedsSubjectPrincipal=NonSystem]
|
||||||
|
attribute (TrustedScriptURL or DOMString) baseVal;
|
||||||
|
|
||||||
readonly attribute DOMString animVal;
|
readonly attribute DOMString animVal;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ interface ServiceWorkerContainer : EventTarget {
|
|||||||
[Throws]
|
[Throws]
|
||||||
readonly attribute Promise<ServiceWorkerRegistration> ready;
|
readonly attribute Promise<ServiceWorkerRegistration> ready;
|
||||||
|
|
||||||
[NewObject, NeedsCallerType, Throws]
|
[NewObject, NeedsSubjectPrincipal=NonSystem, Throws]
|
||||||
Promise<ServiceWorkerRegistration> register((TrustedScriptURL or USVString) scriptURL,
|
Promise<ServiceWorkerRegistration> register((TrustedScriptURL or USVString) scriptURL,
|
||||||
optional RegistrationOptions options = {});
|
optional RegistrationOptions options = {});
|
||||||
|
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ interface ShadowRoot : DocumentFragment
|
|||||||
Element? getElementById(DOMString elementId);
|
Element? getElementById(DOMString elementId);
|
||||||
|
|
||||||
// https://w3c.github.io/DOM-Parsing/#the-innerhtml-mixin
|
// https://w3c.github.io/DOM-Parsing/#the-innerhtml-mixin
|
||||||
[CEReactions, SetterThrows]
|
[CEReactions, SetterThrows, SetterNeedsSubjectPrincipal=NonSystem]
|
||||||
attribute (TrustedHTML or [LegacyNullToEmptyString] DOMString) innerHTML;
|
attribute (TrustedHTML or [LegacyNullToEmptyString] DOMString) innerHTML;
|
||||||
|
|
||||||
// When JS invokes importNode or createElement, the binding code needs to
|
// When JS invokes importNode or createElement, the binding code needs to
|
||||||
@@ -59,7 +59,7 @@ interface ShadowRoot : DocumentFragment
|
|||||||
|
|
||||||
partial interface ShadowRoot {
|
partial interface ShadowRoot {
|
||||||
// https://html.spec.whatwg.org/#dom-shadowroot-sethtmlunsafe
|
// https://html.spec.whatwg.org/#dom-shadowroot-sethtmlunsafe
|
||||||
[Throws]
|
[NeedsSubjectPrincipal=NonSystem, Throws]
|
||||||
undefined setHTMLUnsafe((TrustedHTML or DOMString) html);
|
undefined setHTMLUnsafe((TrustedHTML or DOMString) html);
|
||||||
DOMString getHTML(optional GetHTMLOptions options = {});
|
DOMString getHTML(optional GetHTMLOptions options = {});
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -28,10 +28,10 @@ interface mixin WindowOrWorkerGlobalScope {
|
|||||||
DOMString atob(DOMString atob);
|
DOMString atob(DOMString atob);
|
||||||
|
|
||||||
// timers
|
// timers
|
||||||
[Throws]
|
[Throws, NeedsSubjectPrincipal=NonSystem]
|
||||||
long setTimeout(TimerHandler handler, optional long timeout = 0, any... arguments);
|
long setTimeout(TimerHandler handler, optional long timeout = 0, any... arguments);
|
||||||
undefined clearTimeout(optional long handle = 0);
|
undefined clearTimeout(optional long handle = 0);
|
||||||
[Throws]
|
[Throws, NeedsSubjectPrincipal=NonSystem]
|
||||||
long setInterval(TimerHandler handler, optional long timeout = 0, any... unused);
|
long setInterval(TimerHandler handler, optional long timeout = 0, any... unused);
|
||||||
undefined clearInterval(optional long handle = 0);
|
undefined clearInterval(optional long handle = 0);
|
||||||
|
|
||||||
|
|||||||
@@ -47,6 +47,9 @@ already_AddRefed<Worker> Worker::Constructor(
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO(Bug 1963277) This doen't work for content scripts.
|
||||||
|
nsCOMPtr<nsIPrincipal> principal = aGlobal.GetSubjectPrincipal();
|
||||||
|
|
||||||
// The spec only mentions Window and WorkerGlobalScope global objects, but
|
// The spec only mentions Window and WorkerGlobalScope global objects, but
|
||||||
// Gecko can actually call the constructor with other ones, so we just skip
|
// Gecko can actually call the constructor with other ones, so we just skip
|
||||||
// trusted types handling in that case.
|
// trusted types handling in that case.
|
||||||
@@ -62,7 +65,7 @@ already_AddRefed<Worker> Worker::Constructor(
|
|||||||
if (performTrustedTypeConversion) {
|
if (performTrustedTypeConversion) {
|
||||||
constexpr nsLiteralString sink = u"Worker constructor"_ns;
|
constexpr nsLiteralString sink = u"Worker constructor"_ns;
|
||||||
compliantString = TrustedTypeUtils::GetTrustedTypesCompliantString(
|
compliantString = TrustedTypeUtils::GetTrustedTypesCompliantString(
|
||||||
aScriptURL, sink, kTrustedTypesOnlySinkGroup, *globalObject,
|
aScriptURL, sink, kTrustedTypesOnlySinkGroup, *globalObject, principal,
|
||||||
compliantStringHolder, aRv);
|
compliantStringHolder, aRv);
|
||||||
if (aRv.Failed()) {
|
if (aRv.Failed()) {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|||||||
@@ -668,7 +668,7 @@ void WorkerGlobalScope::ImportScripts(
|
|||||||
const nsAString* compliantString =
|
const nsAString* compliantString =
|
||||||
TrustedTypeUtils::GetTrustedTypesCompliantString(
|
TrustedTypeUtils::GetTrustedTypesCompliantString(
|
||||||
scriptURL, sink, kTrustedTypesOnlySinkGroup, *pinnedGlobal,
|
scriptURL, sink, kTrustedTypesOnlySinkGroup, *pinnedGlobal,
|
||||||
compliantStringHolder, aRv);
|
nullptr, compliantStringHolder, aRv);
|
||||||
if (aRv.Failed()) {
|
if (aRv.Failed()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -694,8 +694,9 @@ void WorkerGlobalScope::ImportScripts(
|
|||||||
int32_t WorkerGlobalScope::SetTimeout(
|
int32_t WorkerGlobalScope::SetTimeout(
|
||||||
JSContext* aCx, const FunctionOrTrustedScriptOrString& aHandler,
|
JSContext* aCx, const FunctionOrTrustedScriptOrString& aHandler,
|
||||||
const int32_t aTimeout, const Sequence<JS::Value>& aArguments,
|
const int32_t aTimeout, const Sequence<JS::Value>& aArguments,
|
||||||
ErrorResult& aRv) {
|
nsIPrincipal* aSubjectPrincipal, ErrorResult& aRv) {
|
||||||
return SetTimeoutOrInterval(aCx, aHandler, aTimeout, aArguments, false, aRv);
|
return SetTimeoutOrInterval(aCx, aHandler, aTimeout, aArguments, false,
|
||||||
|
aSubjectPrincipal, aRv);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorkerGlobalScope::ClearTimeout(int32_t aHandle) {
|
void WorkerGlobalScope::ClearTimeout(int32_t aHandle) {
|
||||||
@@ -709,8 +710,9 @@ void WorkerGlobalScope::ClearTimeout(int32_t aHandle) {
|
|||||||
int32_t WorkerGlobalScope::SetInterval(
|
int32_t WorkerGlobalScope::SetInterval(
|
||||||
JSContext* aCx, const FunctionOrTrustedScriptOrString& aHandler,
|
JSContext* aCx, const FunctionOrTrustedScriptOrString& aHandler,
|
||||||
const int32_t aTimeout, const Sequence<JS::Value>& aArguments,
|
const int32_t aTimeout, const Sequence<JS::Value>& aArguments,
|
||||||
ErrorResult& aRv) {
|
nsIPrincipal* aSubjectPrincipal, ErrorResult& aRv) {
|
||||||
return SetTimeoutOrInterval(aCx, aHandler, aTimeout, aArguments, true, aRv);
|
return SetTimeoutOrInterval(aCx, aHandler, aTimeout, aArguments, true,
|
||||||
|
aSubjectPrincipal, aRv);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorkerGlobalScope::ClearInterval(int32_t aHandle) {
|
void WorkerGlobalScope::ClearInterval(int32_t aHandle) {
|
||||||
@@ -724,7 +726,7 @@ void WorkerGlobalScope::ClearInterval(int32_t aHandle) {
|
|||||||
int32_t WorkerGlobalScope::SetTimeoutOrInterval(
|
int32_t WorkerGlobalScope::SetTimeoutOrInterval(
|
||||||
JSContext* aCx, const FunctionOrTrustedScriptOrString& aHandler,
|
JSContext* aCx, const FunctionOrTrustedScriptOrString& aHandler,
|
||||||
const int32_t aTimeout, const Sequence<JS::Value>& aArguments,
|
const int32_t aTimeout, const Sequence<JS::Value>& aArguments,
|
||||||
bool aIsInterval, ErrorResult& aRv) {
|
bool aIsInterval, nsIPrincipal* aSubjectPrincipal, ErrorResult& aRv) {
|
||||||
AssertIsOnWorkerThread();
|
AssertIsOnWorkerThread();
|
||||||
|
|
||||||
DebuggerNotificationDispatch(
|
DebuggerNotificationDispatch(
|
||||||
@@ -751,8 +753,8 @@ int32_t WorkerGlobalScope::SetTimeoutOrInterval(
|
|||||||
const nsAString* compliantString =
|
const nsAString* compliantString =
|
||||||
TrustedTypeUtils::GetTrustedTypesCompliantString(
|
TrustedTypeUtils::GetTrustedTypesCompliantString(
|
||||||
aHandler, aIsInterval ? sinkSetInterval : sinkSetTimeout,
|
aHandler, aIsInterval ? sinkSetInterval : sinkSetTimeout,
|
||||||
kTrustedTypesOnlySinkGroup, *pinnedGlobal, compliantStringHolder,
|
kTrustedTypesOnlySinkGroup, *pinnedGlobal, aSubjectPrincipal,
|
||||||
aRv);
|
compliantStringHolder, aRv);
|
||||||
if (aRv.Failed()) {
|
if (aRv.Failed()) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -369,7 +369,7 @@ class WorkerGlobalScope : public WorkerGlobalScopeBase {
|
|||||||
int32_t SetTimeout(JSContext* aCx,
|
int32_t SetTimeout(JSContext* aCx,
|
||||||
const FunctionOrTrustedScriptOrString& aHandler,
|
const FunctionOrTrustedScriptOrString& aHandler,
|
||||||
int32_t aTimeout, const Sequence<JS::Value>& aArguments,
|
int32_t aTimeout, const Sequence<JS::Value>& aArguments,
|
||||||
ErrorResult& aRv);
|
nsIPrincipal* aSubjectPrincipal, ErrorResult& aRv);
|
||||||
|
|
||||||
MOZ_CAN_RUN_SCRIPT
|
MOZ_CAN_RUN_SCRIPT
|
||||||
void ClearTimeout(int32_t aHandle);
|
void ClearTimeout(int32_t aHandle);
|
||||||
@@ -378,7 +378,7 @@ class WorkerGlobalScope : public WorkerGlobalScopeBase {
|
|||||||
int32_t SetInterval(JSContext* aCx,
|
int32_t SetInterval(JSContext* aCx,
|
||||||
const FunctionOrTrustedScriptOrString& aHandler,
|
const FunctionOrTrustedScriptOrString& aHandler,
|
||||||
int32_t aTimeout, const Sequence<JS::Value>& aArguments,
|
int32_t aTimeout, const Sequence<JS::Value>& aArguments,
|
||||||
ErrorResult& aRv);
|
nsIPrincipal* aSubjectPrincipal, ErrorResult& aRv);
|
||||||
|
|
||||||
MOZ_CAN_RUN_SCRIPT
|
MOZ_CAN_RUN_SCRIPT
|
||||||
void ClearInterval(int32_t aHandle);
|
void ClearInterval(int32_t aHandle);
|
||||||
@@ -436,11 +436,10 @@ class WorkerGlobalScope : public WorkerGlobalScopeBase {
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
MOZ_CAN_RUN_SCRIPT
|
MOZ_CAN_RUN_SCRIPT
|
||||||
int32_t SetTimeoutOrInterval(JSContext* aCx,
|
int32_t SetTimeoutOrInterval(
|
||||||
const FunctionOrTrustedScriptOrString& aHandler,
|
JSContext* aCx, const FunctionOrTrustedScriptOrString& aHandler,
|
||||||
int32_t aTimeout,
|
int32_t aTimeout, const Sequence<JS::Value>& aArguments, bool aIsInterval,
|
||||||
const Sequence<JS::Value>& aArguments,
|
nsIPrincipal* aSubjectPrincipal, ErrorResult& aRv);
|
||||||
bool aIsInterval, ErrorResult& aRv);
|
|
||||||
|
|
||||||
RefPtr<Crypto> mCrypto;
|
RefPtr<Crypto> mCrypto;
|
||||||
RefPtr<WorkerLocation> mLocation;
|
RefPtr<WorkerLocation> mLocation;
|
||||||
|
|||||||
@@ -137,7 +137,7 @@ already_AddRefed<SharedWorker> SharedWorker::Constructor(
|
|||||||
nsCOMPtr<nsIGlobalObject> global = do_QueryInterface(window);
|
nsCOMPtr<nsIGlobalObject> global = do_QueryInterface(window);
|
||||||
const nsAString* compliantString =
|
const nsAString* compliantString =
|
||||||
TrustedTypeUtils::GetTrustedTypesCompliantString(
|
TrustedTypeUtils::GetTrustedTypesCompliantString(
|
||||||
aScriptURL, sink, kTrustedTypesOnlySinkGroup, *global,
|
aScriptURL, sink, kTrustedTypesOnlySinkGroup, *global, principal,
|
||||||
compliantStringHolder, aRv);
|
compliantStringHolder, aRv);
|
||||||
if (aRv.Failed()) {
|
if (aRv.Failed()) {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|||||||
Reference in New Issue
Block a user