Bug 1458928: Remove GetCSSParsingEnvironment. r?xidorn
MozReview-Commit-ID: KXGM7JiUZAt
--- a/layout/style/ServoKeyframeRule.cpp
+++ b/layout/style/ServoKeyframeRule.cpp
@@ -52,23 +52,16 @@ public:
mDecls->SetOwningRule(nullptr);
mDecls = aDecls->AsServo();
mDecls->SetOwningRule(mRule);
Servo_Keyframe_SetStyle(mRule->Raw(), mDecls->Raw());
}
});
return NS_OK;
}
- void GetCSSParsingEnvironment(CSSParsingEnvironment& aCSSParseEnv,
- nsIPrincipal* aSubjectPrincipal) final
- {
- MOZ_ASSERT_UNREACHABLE("GetCSSParsingEnvironment "
- "shouldn't be calling for a Servo rule");
- GetCSSParsingEnvironmentForRule(mRule, aCSSParseEnv);
- }
ServoCSSParsingEnvironment GetServoCSSParsingEnvironment(
nsIPrincipal* aSubjectPrincipal) const final
{
return GetServoCSSParsingEnvironmentForRule(mRule);
}
nsIDocument* DocToUpdate() final { return nullptr; }
nsINode* GetParentObject() final
--- a/layout/style/ServoPageRule.cpp
+++ b/layout/style/ServoPageRule.cpp
@@ -82,26 +82,16 @@ ServoPageRuleDeclaration::SetCSSDeclarat
}
nsIDocument*
ServoPageRuleDeclaration::DocToUpdate()
{
return nullptr;
}
-void
-ServoPageRuleDeclaration::GetCSSParsingEnvironment(
- CSSParsingEnvironment& aCSSParseEnv,
- nsIPrincipal* aSubjectPrincipal)
-{
- MOZ_ASSERT_UNREACHABLE("GetCSSParsingEnvironment "
- "shouldn't be calling for a Servo rule");
- GetCSSParsingEnvironmentForRule(Rule(), aCSSParseEnv);
-}
-
nsDOMCSSDeclaration::ServoCSSParsingEnvironment
ServoPageRuleDeclaration::GetServoCSSParsingEnvironment(
nsIPrincipal* aSubjectPrincipal) const
{
return GetServoCSSParsingEnvironmentForRule(Rule());
}
// -- ServoPageRule --------------------------------------------------
--- a/layout/style/ServoPageRule.h
+++ b/layout/style/ServoPageRule.h
@@ -30,18 +30,16 @@ public:
css::Rule* GetParentRule() final;
nsINode* GetParentObject() final;
protected:
DeclarationBlock* GetCSSDeclaration(Operation aOperation) final;
nsresult SetCSSDeclaration(DeclarationBlock* aDecl) final;
nsIDocument* DocToUpdate() final;
- void GetCSSParsingEnvironment(CSSParsingEnvironment& aCSSParseEnv,
- nsIPrincipal* aSubjectPrincipal) final;
nsDOMCSSDeclaration::ServoCSSParsingEnvironment
GetServoCSSParsingEnvironment(nsIPrincipal* aSubjectPrincipal) const final;
private:
// For accessing the constructor.
friend class ServoPageRule;
explicit ServoPageRuleDeclaration(
--- a/layout/style/ServoStyleRule.cpp
+++ b/layout/style/ServoStyleRule.cpp
@@ -87,26 +87,16 @@ ServoStyleRuleDeclaration::SetCSSDeclara
}
nsIDocument*
ServoStyleRuleDeclaration::DocToUpdate()
{
return nullptr;
}
-void
-ServoStyleRuleDeclaration::GetCSSParsingEnvironment(
- CSSParsingEnvironment& aCSSParseEnv,
- nsIPrincipal* aSubjectPrincipal)
-{
- MOZ_ASSERT_UNREACHABLE("GetCSSParsingEnvironment "
- "shouldn't be calling for a Servo rule");
- GetCSSParsingEnvironmentForRule(Rule(), aCSSParseEnv);
-}
-
nsDOMCSSDeclaration::ServoCSSParsingEnvironment
ServoStyleRuleDeclaration::GetServoCSSParsingEnvironment(
nsIPrincipal* aSubjectPrincipal) const
{
return GetServoCSSParsingEnvironmentForRule(Rule());
}
// -- ServoStyleRule --------------------------------------------------
--- a/layout/style/ServoStyleRule.h
+++ b/layout/style/ServoStyleRule.h
@@ -31,18 +31,16 @@ public:
css::Rule* GetParentRule() final;
nsINode* GetParentObject() final;
protected:
DeclarationBlock* GetCSSDeclaration(Operation aOperation) final;
nsresult SetCSSDeclaration(DeclarationBlock* aDecl) final;
nsIDocument* DocToUpdate() final;
- void GetCSSParsingEnvironment(CSSParsingEnvironment& aCSSParseEnv,
- nsIPrincipal* aSubjectPrincipal) final;
ServoCSSParsingEnvironment
GetServoCSSParsingEnvironment(nsIPrincipal* aSubjectPrincipal) const final;
private:
// For accessing the constructor.
friend class ServoStyleRule;
explicit ServoStyleRuleDeclaration(
--- a/layout/style/nsComputedDOMStyle.cpp
+++ b/layout/style/nsComputedDOMStyle.cpp
@@ -753,23 +753,16 @@ nsComputedDOMStyle::SetCSSDeclaration(De
}
nsIDocument*
nsComputedDOMStyle::DocToUpdate()
{
MOZ_CRASH("called nsComputedDOMStyle::DocToUpdate");
}
-void
-nsComputedDOMStyle::GetCSSParsingEnvironment(CSSParsingEnvironment& aCSSParseEnv,
- nsIPrincipal* aSubjectPrincipal)
-{
- MOZ_CRASH("called nsComputedDOMStyle::GetCSSParsingEnvironment");
-}
-
nsDOMCSSDeclaration::ServoCSSParsingEnvironment
nsComputedDOMStyle::GetServoCSSParsingEnvironment(
nsIPrincipal* aSubjectPrincipal) const
{
MOZ_CRASH("called nsComputedDOMStyle::GetServoCSSParsingEnvironment");
}
void
--- a/layout/style/nsComputedDOMStyle.h
+++ b/layout/style/nsComputedDOMStyle.h
@@ -127,18 +127,17 @@ public:
mozilla::ErrorResult& aRv) final;
// nsDOMCSSDeclaration abstract methods which should never be called
// on a nsComputedDOMStyle object, but must be defined to avoid
// compile errors.
virtual mozilla::DeclarationBlock* GetCSSDeclaration(Operation) override;
virtual nsresult SetCSSDeclaration(mozilla::DeclarationBlock*) override;
virtual nsIDocument* DocToUpdate() override;
- virtual void GetCSSParsingEnvironment(CSSParsingEnvironment& aCSSParseEnv,
- nsIPrincipal* aSubjectPrincipal) override;
+
nsDOMCSSDeclaration::ServoCSSParsingEnvironment
GetServoCSSParsingEnvironment(nsIPrincipal* aSubjectPrincipal) const final;
static already_AddRefed<nsROCSSPrimitiveValue>
MatrixToCSSValue(const mozilla::gfx::Matrix4x4& aMatrix);
static void RegisterPrefChangeCallbacks();
static void UnregisterPrefChangeCallbacks();
--- a/layout/style/nsDOMCSSAttrDeclaration.cpp
+++ b/layout/style/nsDOMCSSAttrDeclaration.cpp
@@ -151,30 +151,16 @@ nsDOMCSSAttributeDeclaration::GetCSSDecl
if (NS_FAILED(rv)) {
return nullptr; // the decl will be destroyed along with the style rule
}
return decl;
}
-void
-nsDOMCSSAttributeDeclaration::GetCSSParsingEnvironment(CSSParsingEnvironment& aCSSParseEnv,
- nsIPrincipal* aSubjectPrincipal)
-{
- NS_ASSERTION(mElement, "Something is severely broken -- there should be an Element here!");
-
- nsIDocument* doc = mElement->OwnerDoc();
- aCSSParseEnv.mSheetURI = doc->GetDocumentURI();
- aCSSParseEnv.mBaseURI = mElement->GetBaseURIForStyleAttr();
- aCSSParseEnv.mPrincipal = (aSubjectPrincipal ? aSubjectPrincipal
- : mElement->NodePrincipal());
- aCSSParseEnv.mCSSLoader = doc->CSSLoader();
-}
-
nsDOMCSSDeclaration::ServoCSSParsingEnvironment
nsDOMCSSAttributeDeclaration::GetServoCSSParsingEnvironment(
nsIPrincipal* aSubjectPrincipal) const
{
return {
mElement->GetURLDataForStyleAttr(aSubjectPrincipal),
mElement->OwnerDoc()->GetCompatibilityMode(),
mElement->OwnerDoc()->CSSLoader(),
--- a/layout/style/nsDOMCSSAttrDeclaration.h
+++ b/layout/style/nsDOMCSSAttrDeclaration.h
@@ -29,21 +29,21 @@ public:
nsDOMCSSAttributeDeclaration(Element* aContent, bool aIsSMILOverride);
NS_DECL_CYCLE_COLLECTING_ISUPPORTS
NS_DECL_CYCLE_COLLECTION_SKIPPABLE_SCRIPT_HOLDER_CLASS_AMBIGUOUS(nsDOMCSSAttributeDeclaration,
nsICSSDeclaration)
// If GetCSSDeclaration returns non-null, then the decl it returns
// is owned by our current style rule.
- virtual mozilla::DeclarationBlock* GetCSSDeclaration(Operation aOperation) override;
- virtual void GetCSSParsingEnvironment(CSSParsingEnvironment& aCSSParseEnv,
- nsIPrincipal* aSubjectPrincipal) override;
+ mozilla::DeclarationBlock* GetCSSDeclaration(Operation aOperation) final;
+
nsDOMCSSDeclaration::ServoCSSParsingEnvironment
- GetServoCSSParsingEnvironment(nsIPrincipal* aSubjectPrincipal) const final;
+ GetServoCSSParsingEnvironment(nsIPrincipal* aSubjectPrincipal) const final;
+
mozilla::css::Rule* GetParentRule() override
{
return nullptr;
}
nsINode* GetParentObject() override
{
return mElement;
--- a/layout/style/nsDOMCSSDeclaration.cpp
+++ b/layout/style/nsDOMCSSDeclaration.cpp
@@ -223,33 +223,16 @@ NS_IMETHODIMP
nsDOMCSSDeclaration::RemoveProperty(const nsAString& aPropertyName,
nsAString& aReturn)
{
nsresult rv = GetPropertyValue(aPropertyName, aReturn);
NS_ENSURE_SUCCESS(rv, rv);
return RemovePropertyInternal(aPropertyName);
}
-/* static */ void
-nsDOMCSSDeclaration::GetCSSParsingEnvironmentForRule(css::Rule* aRule,
- CSSParsingEnvironment& aCSSParseEnv)
-{
- StyleSheet* sheet = aRule ? aRule->GetStyleSheet() : nullptr;
- if (!sheet) {
- aCSSParseEnv.mPrincipal = nullptr;
- return;
- }
-
- nsIDocument* document = sheet->GetAssociatedDocument();
- aCSSParseEnv.mSheetURI = sheet->GetSheetURI();
- aCSSParseEnv.mBaseURI = sheet->GetBaseURI();
- aCSSParseEnv.mPrincipal = sheet->Principal();
- aCSSParseEnv.mCSSLoader = document ? document->CSSLoader() : nullptr;
-}
-
/* static */ nsDOMCSSDeclaration::ServoCSSParsingEnvironment
nsDOMCSSDeclaration::GetServoCSSParsingEnvironmentForRule(const css::Rule* aRule)
{
StyleSheet* sheet = aRule ? aRule->GetStyleSheet() : nullptr;
if (!sheet) {
return { nullptr, eCompatibility_FullStandards, nullptr };
}
--- a/layout/style/nsDOMCSSDeclaration.h
+++ b/layout/style/nsDOMCSSDeclaration.h
@@ -160,59 +160,26 @@ protected:
};
virtual mozilla::DeclarationBlock* GetCSSDeclaration(Operation aOperation) = 0;
virtual nsresult SetCSSDeclaration(mozilla::DeclarationBlock* aDecl) = 0;
// Document that we must call BeginUpdate/EndUpdate on around the
// calls to SetCSSDeclaration and the style rule mutation that leads
// to it.
virtual nsIDocument* DocToUpdate() = 0;
- // Information neded to parse a declaration. We need the mSheetURI
- // for error reporting, mBaseURI to resolve relative URIs,
- // mPrincipal for subresource loads, and mCSSLoader for determining
- // whether we're in quirks mode. mBaseURI needs to be a strong
- // pointer because of xml:base possibly creating base URIs on the
- // fly. This is why we don't use CSSParsingEnvironment as a return
- // value, to avoid multiple-refcounting of mBaseURI.
- struct CSSParsingEnvironment {
- nsIURI* MOZ_UNSAFE_REF("user of CSSParsingEnviroment must hold an owning "
- "reference; reference counting here has unacceptable "
- "performance overhead (see bug 649163)") mSheetURI;
- nsCOMPtr<nsIURI> mBaseURI;
- nsIPrincipal* MOZ_UNSAFE_REF("user of CSSParsingEnviroment must hold an owning "
- "reference; reference counting here has unacceptable "
- "performance overhead (see bug 649163)") mPrincipal;
- mozilla::css::Loader* MOZ_UNSAFE_REF("user of CSSParsingEnviroment must hold an owning "
- "reference; reference counting here has unacceptable "
- "performance overhead (see bug 649163)") mCSSLoader;
- };
-
- // On failure, mPrincipal should be set to null in aCSSParseEnv.
- // If mPrincipal is null, the other members may not be set to
- // anything meaningful.
- // If aSubjectPrincipal is passed, it should be the subject principal of the
- // scripted caller that initiated the parser.
- virtual void GetCSSParsingEnvironment(CSSParsingEnvironment& aCSSParseEnv,
- nsIPrincipal* aSubjectPrincipal = nullptr) = 0;
-
// mUrlExtraData returns URL data for parsing url values in
// CSS. Returns nullptr on failure. If mUrlExtraData is nullptr,
// mCompatMode may not be set to anything meaningful.
// If aSubjectPrincipal is passed, it should be the subject principal of the
// scripted caller that initiated the parser.
virtual ServoCSSParsingEnvironment
GetServoCSSParsingEnvironment(nsIPrincipal* aSubjectPrincipal = nullptr) const = 0;
- // An implementation for GetCSSParsingEnvironment for callers wrapping
- // an css::Rule.
- static void GetCSSParsingEnvironmentForRule(mozilla::css::Rule* aRule,
- CSSParsingEnvironment& aCSSParseEnv);
-
- // An implementation for GetServoCSSParsingEnvironment for callers wrapping
- // an css::Rule.
+ // An implementation for GetServoCSSParsingEnvironment for callers wrapping a
+ // css::Rule.
static ServoCSSParsingEnvironment
GetServoCSSParsingEnvironmentForRule(const mozilla::css::Rule* aRule);
nsresult ParsePropertyValue(const nsCSSPropertyID aPropID,
const nsAString& aPropValue,
bool aIsImportant,
nsIPrincipal* aSubjectPrincipal);