Bug 851892 part 8. Get rid of css::Rule::GetDOMRule. r=heycam

This commit is contained in:
Boris Zbarsky 2017-01-13 10:41:03 -05:00
Родитель 75a4f847c1
Коммит c2d6f05094
13 изменённых файлов: 18 добавлений и 109 удалений

Просмотреть файл

@ -5180,7 +5180,7 @@ nsDocument::StyleRuleChanged(StyleSheet* aSheet,
DO_STYLESHEET_NOTIFICATION(StyleRuleChangeEvent, DO_STYLESHEET_NOTIFICATION(StyleRuleChangeEvent,
"StyleRuleChanged", "StyleRuleChanged",
mRule, mRule,
aStyleRule ? aStyleRule->GetDOMRule() : nullptr); aStyleRule);
} }
} }
@ -5194,8 +5194,7 @@ nsDocument::StyleRuleAdded(StyleSheet* aSheet,
DO_STYLESHEET_NOTIFICATION(StyleRuleChangeEvent, DO_STYLESHEET_NOTIFICATION(StyleRuleChangeEvent,
"StyleRuleAdded", "StyleRuleAdded",
mRule, mRule,
aStyleRule ? aStyleRule->GetDOMRule() aStyleRule);
: nullptr);
} }
} }
@ -5209,8 +5208,7 @@ nsDocument::StyleRuleRemoved(StyleSheet* aSheet,
DO_STYLESHEET_NOTIFICATION(StyleRuleChangeEvent, DO_STYLESHEET_NOTIFICATION(StyleRuleChangeEvent,
"StyleRuleRemoved", "StyleRuleRemoved",
mRule, mRule,
aStyleRule ? aStyleRule->GetDOMRule() aStyleRule);
: nullptr);
} }
} }

Просмотреть файл

@ -253,13 +253,9 @@ inDOMUtils::GetCSSStyleRules(nsIDOMElement *aElement,
for (nsRuleNode* ruleNode : Reversed(ruleNodes)) { for (nsRuleNode* ruleNode : Reversed(ruleNodes)) {
RefPtr<Declaration> decl = do_QueryObject(ruleNode->GetRule()); RefPtr<Declaration> decl = do_QueryObject(ruleNode->GetRule());
if (decl) { if (decl) {
RefPtr<mozilla::css::StyleRule> styleRule = css::Rule* owningRule = decl->GetOwningRule();
do_QueryObject(decl->GetOwningRule()); if (owningRule) {
if (styleRule) { rules->AppendElement(owningRule, /*weak =*/ false);
nsCOMPtr<nsIDOMCSSRule> domRule = styleRule->GetDOMRule();
if (domRule) {
rules->AppendElement(domRule, /*weak =*/ false);
}
} }
} }
} }

Просмотреть файл

@ -112,7 +112,7 @@ CSSRuleListImpl::IndexedGetter(uint32_t aIndex, bool& aFound)
css::Rule* rule = mStyleSheet->GetStyleRuleAt(aIndex); css::Rule* rule = mStyleSheet->GetStyleRuleAt(aIndex);
if (rule) { if (rule) {
aFound = true; aFound = true;
return rule->GetDOMRule(); return rule;
} }
} }
@ -878,7 +878,7 @@ CSSStyleSheet::RegisterNamespaceRule(css::Rule* aRule)
nsIDOMCSSRule* nsIDOMCSSRule*
CSSStyleSheet::GetDOMOwnerRule() const CSSStyleSheet::GetDOMOwnerRule() const
{ {
return mOwnerRule ? mOwnerRule->GetDOMRule() : nullptr; return mOwnerRule;
} }
CSSRuleList* CSSRuleList*
@ -1041,11 +1041,6 @@ CSSStyleSheet::DeleteRuleInternal(uint32_t aIndex, ErrorResult& aRv)
RefPtr<css::Rule> rule = mInner->mOrderedRules.ObjectAt(aIndex); RefPtr<css::Rule> rule = mInner->mOrderedRules.ObjectAt(aIndex);
if (rule) { if (rule) {
mInner->mOrderedRules.RemoveObjectAt(aIndex); mInner->mOrderedRules.RemoveObjectAt(aIndex);
if (mDocument && mDocument->StyleSheetChangeEventsEnabled()) {
// Force creation of the DOM rule, so that it can be put on the
// StyleRuleRemoved event object.
rule->GetDOMRule();
}
rule->SetStyleSheet(nullptr); rule->SetStyleSheet(nullptr);
DidDirty(); DidDirty();

Просмотреть файл

@ -41,8 +41,6 @@ public:
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(GroupRule, Rule) NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(GroupRule, Rule)
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED
// implement part of Rule
DECL_STYLE_RULE_INHERIT_NO_DOMRULE
#ifdef DEBUG #ifdef DEBUG
virtual void List(FILE* out = stdout, int32_t aIndent = 0) const override; virtual void List(FILE* out = stdout, int32_t aIndent = 0) const override;
#endif #endif

Просмотреть файл

@ -37,8 +37,6 @@ public:
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(ImportRule, Rule) NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(ImportRule, Rule)
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED
DECL_STYLE_RULE_INHERIT
using Rule::GetStyleSheet; // unhide since nsIDOMCSSImportRule has its own GetStyleSheet using Rule::GetStyleSheet; // unhide since nsIDOMCSSImportRule has its own GetStyleSheet
// Rule methods // Rule methods

Просмотреть файл

@ -38,8 +38,6 @@ public:
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED
// Rule methods
DECL_STYLE_RULE_INHERIT
#ifdef DEBUG #ifdef DEBUG
virtual void List(FILE* out = stdout, int32_t aIndent = 0) const override; virtual void List(FILE* out = stdout, int32_t aIndent = 0) const override;
#endif #endif

Просмотреть файл

@ -23,13 +23,6 @@ namespace mozilla {
namespace css { namespace css {
class GroupRule; class GroupRule;
#define DECL_STYLE_RULE_INHERIT_NO_DOMRULE \
/* nothing */
#define DECL_STYLE_RULE_INHERIT \
DECL_STYLE_RULE_INHERIT_NO_DOMRULE \
virtual nsIDOMCSSRule* GetDOMRule() override;
class Rule : public nsIDOMCSSRule class Rule : public nsIDOMCSSRule
, public nsWrapperCache , public nsWrapperCache
{ {
@ -114,10 +107,6 @@ public:
*/ */
virtual already_AddRefed<Rule> Clone() const = 0; virtual already_AddRefed<Rule> Clone() const = 0;
// Note that this returns null for inline style rules since they aren't
// supposed to have a DOM rule representation (and our code wouldn't work).
virtual nsIDOMCSSRule* GetDOMRule() = 0;
// This is pure virtual because all of Rule's data members are non-owning and // This is pure virtual because all of Rule's data members are non-owning and
// thus measured elsewhere. // thus measured elsewhere.
virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf)

Просмотреть файл

@ -88,7 +88,7 @@ ServoCSSRuleList::IndexedGetter(uint32_t aIndex, bool& aFound)
} }
aFound = true; aFound = true;
if (css::Rule* rule = GetRule(aIndex)) { if (css::Rule* rule = GetRule(aIndex)) {
return rule->GetDOMRule(); return rule;
} }
return nullptr; return nullptr;
} }

Просмотреть файл

@ -68,7 +68,6 @@ public:
int32_t GetType() const final { return css::Rule::STYLE_RULE; } int32_t GetType() const final { return css::Rule::STYLE_RULE; }
using Rule::GetType; using Rule::GetType;
already_AddRefed<Rule> Clone() const final; already_AddRefed<Rule> Clone() const final;
nsIDOMCSSRule* GetDOMRule() final { return this; }
size_t SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const final; size_t SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const final;
virtual JSObject* WrapObject(JSContext* aCx, virtual JSObject* WrapObject(JSContext* aCx,
JS::Handle<JSObject*> aGivenProto) override; JS::Handle<JSObject*> aGivenProto) override;

Просмотреть файл

@ -1125,7 +1125,7 @@ DOMCSSDeclarationImpl::GetParentRule(nsIDOMCSSRule **aParent)
{ {
NS_ENSURE_ARG_POINTER(aParent); NS_ENSURE_ARG_POINTER(aParent);
NS_IF_ADDREF(*aParent = mRule->GetDOMRule()); NS_IF_ADDREF(*aParent = mRule);
return NS_OK; return NS_OK;
} }
@ -1282,12 +1282,6 @@ StyleRule::Clone() const
return clone.forget(); return clone.forget();
} }
/* virtual */ nsIDOMCSSRule*
StyleRule::GetDOMRule()
{
return this;
}
void void
StyleRule::SetDeclaration(Declaration* aDecl) StyleRule::SetDeclaration(Declaration* aDecl)
{ {

Просмотреть файл

@ -353,8 +353,6 @@ public:
virtual already_AddRefed<Rule> Clone() const override; virtual already_AddRefed<Rule> Clone() const override;
virtual nsIDOMCSSRule* GetDOMRule() override;
#ifdef DEBUG #ifdef DEBUG
virtual void List(FILE* out = stdout, int32_t aIndent = 0) const override; virtual void List(FILE* out = stdout, int32_t aIndent = 0) const override;
#endif #endif

Просмотреть файл

@ -41,13 +41,6 @@
using namespace mozilla; using namespace mozilla;
using namespace mozilla::dom; using namespace mozilla::dom;
#define IMPL_STYLE_RULE_INHERIT_GET_DOM_RULE_WEAK(class_, super_) \
/* virtual */ nsIDOMCSSRule* class_::GetDOMRule() \
{ return this; }
#define IMPL_STYLE_RULE_INHERIT(class_, super_) \
IMPL_STYLE_RULE_INHERIT_GET_DOM_RULE_WEAK(class_, super_)
// base class for all rule types in a CSS style sheet // base class for all rule types in a CSS style sheet
namespace mozilla { namespace mozilla {
@ -76,11 +69,7 @@ Rule::SetStyleSheet(StyleSheet* aSheet)
NS_IMETHODIMP NS_IMETHODIMP
Rule::GetParentRule(nsIDOMCSSRule** aParentRule) Rule::GetParentRule(nsIDOMCSSRule** aParentRule)
{ {
if (mParentRule) { NS_IF_ADDREF(*aParentRule = mParentRule);
NS_IF_ADDREF(*aParentRule = mParentRule->GetDOMRule());
} else {
*aParentRule = nullptr;
}
return NS_OK; return NS_OK;
} }
@ -186,7 +175,7 @@ GroupRuleRuleList::IndexedGetter(uint32_t aIndex, bool& aFound)
RefPtr<Rule> rule = mGroupRule->GetStyleRuleAt(aIndex); RefPtr<Rule> rule = mGroupRule->GetStyleRuleAt(aIndex);
if (rule) { if (rule) {
aFound = true; aFound = true;
return rule->GetDOMRule(); return rule;
} }
} }
@ -243,8 +232,6 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(ImportRule)
NS_DOM_INTERFACE_MAP_ENTRY_CLASSINFO(CSSImportRule) NS_DOM_INTERFACE_MAP_ENTRY_CLASSINFO(CSSImportRule)
NS_INTERFACE_MAP_END_INHERITING(Rule) NS_INTERFACE_MAP_END_INHERITING(Rule)
IMPL_STYLE_RULE_INHERIT(ImportRule, Rule)
#ifdef DEBUG #ifdef DEBUG
/* virtual */ void /* virtual */ void
ImportRule::List(FILE* out, int32_t aIndent) const ImportRule::List(FILE* out, int32_t aIndent) const
@ -518,14 +505,11 @@ GroupRule::AppendRulesToCssText(nsAString& aCssText) const
// get all the rules // get all the rules
for (int32_t index = 0, count = mRules.Count(); index < count; ++index) { for (int32_t index = 0, count = mRules.Count(); index < count; ++index) {
Rule* rule = mRules.ObjectAt(index); Rule* rule = mRules.ObjectAt(index);
nsIDOMCSSRule* domRule = rule->GetDOMRule(); nsAutoString cssText;
if (domRule) { rule->GetCssText(cssText);
nsAutoString cssText; aCssText.AppendLiteral(" ");
domRule->GetCssText(cssText); aCssText.Append(cssText);
aCssText.AppendLiteral(" "); aCssText.Append('\n');
aCssText.Append(cssText);
aCssText.Append('\n');
}
} }
aCssText.Append('}'); aCssText.Append('}');
@ -1078,8 +1062,6 @@ NS_INTERFACE_MAP_BEGIN(NameSpaceRule)
NS_DOM_INTERFACE_MAP_ENTRY_CLASSINFO(CSSNameSpaceRule) NS_DOM_INTERFACE_MAP_ENTRY_CLASSINFO(CSSNameSpaceRule)
NS_INTERFACE_MAP_END_INHERITING(Rule) NS_INTERFACE_MAP_END_INHERITING(Rule)
IMPL_STYLE_RULE_INHERIT(NameSpaceRule, Rule)
#ifdef DEBUG #ifdef DEBUG
/* virtual */ void /* virtual */ void
NameSpaceRule::List(FILE* out, int32_t aIndent) const NameSpaceRule::List(FILE* out, int32_t aIndent) const
@ -1427,7 +1409,7 @@ nsCSSFontFaceStyleDecl::IndexedGetter(uint32_t index, bool& aFound, nsAString &
NS_IMETHODIMP NS_IMETHODIMP
nsCSSFontFaceStyleDecl::GetParentRule(nsIDOMCSSRule** aParentRule) nsCSSFontFaceStyleDecl::GetParentRule(nsIDOMCSSRule** aParentRule)
{ {
NS_IF_ADDREF(*aParentRule = ContainingRule()->GetDOMRule()); NS_IF_ADDREF(*aParentRule = ContainingRule());
return NS_OK; return NS_OK;
} }
@ -1502,8 +1484,6 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(nsCSSFontFaceRule)
NS_DOM_INTERFACE_MAP_ENTRY_CLASSINFO(CSSFontFaceRule) NS_DOM_INTERFACE_MAP_ENTRY_CLASSINFO(CSSFontFaceRule)
NS_INTERFACE_MAP_END_INHERITING(Rule) NS_INTERFACE_MAP_END_INHERITING(Rule)
IMPL_STYLE_RULE_INHERIT(nsCSSFontFaceRule, Rule)
#ifdef DEBUG #ifdef DEBUG
void void
nsCSSFontFaceRule::List(FILE* out, int32_t aIndent) const nsCSSFontFaceRule::List(FILE* out, int32_t aIndent) const
@ -1625,8 +1605,6 @@ NS_INTERFACE_MAP_BEGIN(nsCSSFontFeatureValuesRule)
NS_DOM_INTERFACE_MAP_ENTRY_CLASSINFO(CSSFontFeatureValuesRule) NS_DOM_INTERFACE_MAP_ENTRY_CLASSINFO(CSSFontFeatureValuesRule)
NS_INTERFACE_MAP_END_INHERITING(mozilla::css::Rule) NS_INTERFACE_MAP_END_INHERITING(mozilla::css::Rule)
IMPL_STYLE_RULE_INHERIT(nsCSSFontFeatureValuesRule, Rule)
static void static void
FeatureValuesToString( FeatureValuesToString(
const nsTArray<gfxFontFeatureValueSet::FeatureValues>& aFeatureValues, const nsTArray<gfxFontFeatureValueSet::FeatureValues>& aFeatureValues,
@ -1943,8 +1921,6 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(nsCSSKeyframeRule)
NS_DOM_INTERFACE_MAP_ENTRY_CLASSINFO(CSSKeyframeRule) NS_DOM_INTERFACE_MAP_ENTRY_CLASSINFO(CSSKeyframeRule)
NS_INTERFACE_MAP_END_INHERITING(mozilla::css::Rule) NS_INTERFACE_MAP_END_INHERITING(mozilla::css::Rule)
IMPL_STYLE_RULE_INHERIT_GET_DOM_RULE_WEAK(nsCSSKeyframeRule, Rule)
#ifdef DEBUG #ifdef DEBUG
void void
nsCSSKeyframeRule::List(FILE* out, int32_t aIndent) const nsCSSKeyframeRule::List(FILE* out, int32_t aIndent) const
@ -2441,8 +2417,6 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(nsCSSPageRule)
NS_DOM_INTERFACE_MAP_ENTRY_CLASSINFO(CSSPageRule) NS_DOM_INTERFACE_MAP_ENTRY_CLASSINFO(CSSPageRule)
NS_INTERFACE_MAP_END_INHERITING(mozilla::css::Rule) NS_INTERFACE_MAP_END_INHERITING(mozilla::css::Rule)
IMPL_STYLE_RULE_INHERIT_GET_DOM_RULE_WEAK(nsCSSPageRule, Rule)
#ifdef DEBUG #ifdef DEBUG
void void
nsCSSPageRule::List(FILE* out, int32_t aIndent) const nsCSSPageRule::List(FILE* out, int32_t aIndent) const
@ -2702,8 +2676,6 @@ NS_INTERFACE_MAP_BEGIN(nsCSSCounterStyleRule)
NS_DOM_INTERFACE_MAP_ENTRY_CLASSINFO(CSSCounterStyleRule) NS_DOM_INTERFACE_MAP_ENTRY_CLASSINFO(CSSCounterStyleRule)
NS_INTERFACE_MAP_END_INHERITING(mozilla::css::Rule) NS_INTERFACE_MAP_END_INHERITING(mozilla::css::Rule)
IMPL_STYLE_RULE_INHERIT(nsCSSCounterStyleRule, css::Rule)
#ifdef DEBUG #ifdef DEBUG
void void
nsCSSCounterStyleRule::List(FILE* out, int32_t aIndent) const nsCSSCounterStyleRule::List(FILE* out, int32_t aIndent) const

Просмотреть файл

@ -69,10 +69,6 @@ public:
virtual int32_t GetType() const override; virtual int32_t GetType() const override;
using Rule::GetType; using Rule::GetType;
virtual already_AddRefed<Rule> Clone() const override; virtual already_AddRefed<Rule> Clone() const override;
virtual nsIDOMCSSRule* GetDOMRule() override
{
return this;
}
// nsIDOMCSSGroupingRule interface // nsIDOMCSSGroupingRule interface
NS_DECL_NSIDOMCSSGROUPINGRULE NS_DECL_NSIDOMCSSGROUPINGRULE
@ -125,10 +121,6 @@ public:
virtual int32_t GetType() const override; virtual int32_t GetType() const override;
using Rule::GetType; using Rule::GetType;
virtual already_AddRefed<Rule> Clone() const override; virtual already_AddRefed<Rule> Clone() const override;
virtual nsIDOMCSSRule* GetDOMRule() override
{
return this;
}
// nsIDOMCSSGroupingRule interface // nsIDOMCSSGroupingRule interface
NS_DECL_NSIDOMCSSGROUPINGRULE NS_DECL_NSIDOMCSSGROUPINGRULE
@ -264,8 +256,6 @@ public:
NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS_INHERITED(nsCSSFontFaceRule, NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS_INHERITED(nsCSSFontFaceRule,
mozilla::css::Rule) mozilla::css::Rule)
// Rule methods
DECL_STYLE_RULE_INHERIT
#ifdef DEBUG #ifdef DEBUG
virtual void List(FILE* out = stdout, int32_t aIndent = 0) const override; virtual void List(FILE* out = stdout, int32_t aIndent = 0) const override;
#endif #endif
@ -340,8 +330,6 @@ public:
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED
// Rule methods
DECL_STYLE_RULE_INHERIT
#ifdef DEBUG #ifdef DEBUG
virtual void List(FILE* out = stdout, int32_t aIndent = 0) const override; virtual void List(FILE* out = stdout, int32_t aIndent = 0) const override;
#endif #endif
@ -429,8 +417,6 @@ public:
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(nsCSSKeyframeRule, mozilla::css::Rule) NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(nsCSSKeyframeRule, mozilla::css::Rule)
// Rule methods
DECL_STYLE_RULE_INHERIT
#ifdef DEBUG #ifdef DEBUG
virtual void List(FILE* out = stdout, int32_t aIndent = 0) const override; virtual void List(FILE* out = stdout, int32_t aIndent = 0) const override;
#endif #endif
@ -488,10 +474,6 @@ public:
virtual int32_t GetType() const override; virtual int32_t GetType() const override;
using Rule::GetType; using Rule::GetType;
virtual already_AddRefed<mozilla::css::Rule> Clone() const override; virtual already_AddRefed<mozilla::css::Rule> Clone() const override;
virtual nsIDOMCSSRule* GetDOMRule() override
{
return this;
}
// nsIDOMCSSKeyframesRule interface // nsIDOMCSSKeyframesRule interface
NS_DECL_NSIDOMCSSKEYFRAMESRULE NS_DECL_NSIDOMCSSKEYFRAMESRULE
@ -564,8 +546,6 @@ public:
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(nsCSSPageRule, mozilla::css::Rule) NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(nsCSSPageRule, mozilla::css::Rule)
// Rule methods
DECL_STYLE_RULE_INHERIT
#ifdef DEBUG #ifdef DEBUG
virtual void List(FILE* out = stdout, int32_t aIndent = 0) const override; virtual void List(FILE* out = stdout, int32_t aIndent = 0) const override;
#endif #endif
@ -614,10 +594,6 @@ public:
virtual already_AddRefed<mozilla::css::Rule> Clone() const override; virtual already_AddRefed<mozilla::css::Rule> Clone() const override;
virtual bool UseForPresentation(nsPresContext* aPresContext, virtual bool UseForPresentation(nsPresContext* aPresContext,
nsMediaQueryResultCacheKey& aKey) override; nsMediaQueryResultCacheKey& aKey) override;
virtual nsIDOMCSSRule* GetDOMRule() override
{
return this;
}
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED
@ -668,8 +644,6 @@ private:
public: public:
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED
// Rule methods
DECL_STYLE_RULE_INHERIT
#ifdef DEBUG #ifdef DEBUG
virtual void List(FILE* out = stdout, int32_t aIndent = 0) const override; virtual void List(FILE* out = stdout, int32_t aIndent = 0) const override;
#endif #endif