Bug 648925 - Part 1: Change uses of nsICSSRule to css::Rule. r=bzbarsky

This commit is contained in:
Craig Topper 2011-04-07 18:23:46 -07:00
parent 24257a4235
commit c3d4c659c7
24 changed files with 226 additions and 322 deletions

View File

@ -315,8 +315,8 @@ nsGenericHTMLElement::CopyInnerTo(nsGenericElement* aDst) const
value->Type() == nsAttrValue::eCSSStyleRule) {
// We can't just set this as a string, because that will fail
// to reparse the string into style data until the node is
// inserted into the document. Clone the nsICSSRule instead.
nsCOMPtr<nsICSSRule> ruleClone = value->GetCSSStyleRuleValue()->Clone();
// inserted into the document. Clone the Rule instead.
nsRefPtr<mozilla::css::Rule> ruleClone = value->GetCSSStyleRuleValue()->Clone();
nsRefPtr<mozilla::css::StyleRule> styleRule = do_QueryObject(ruleClone);
NS_ENSURE_TRUE(styleRule, NS_ERROR_UNEXPECTED);

View File

@ -1180,7 +1180,7 @@ nsHTMLParanoidFragmentSink::CloseContainer(const nsHTMLTag aTag)
// Loop through all the rules found in the CSS text
PRInt32 ruleCount = sheet->StyleRuleCount();
for (PRInt32 i = 0; i < ruleCount; ++i) {
nsRefPtr<nsICSSRule> rule;
nsRefPtr<css::Rule> rule;
rv = sheet->GetStyleRuleAt(i, *getter_AddRefs(rule));
if (NS_FAILED(rv))
continue;
@ -1190,8 +1190,8 @@ nsHTMLParanoidFragmentSink::CloseContainer(const nsHTMLTag aTag)
didSanitize = PR_TRUE;
// Ignore these rule types.
break;
case nsICSSRule::NAMESPACE_RULE:
case nsICSSRule::FONT_FACE_RULE: {
case css::Rule::NAMESPACE_RULE:
case css::Rule::FONT_FACE_RULE: {
// Append @namespace and @font-face rules verbatim.
nsAutoString cssText;
nsCOMPtr<nsIDOMCSSRule> styleRule = do_QueryInterface(rule);
@ -1203,7 +1203,7 @@ nsHTMLParanoidFragmentSink::CloseContainer(const nsHTMLTag aTag)
}
break;
}
case nsICSSRule::STYLE_RULE: {
case css::Rule::STYLE_RULE: {
// For style rules, we will just look for and remove the
// -moz-binding properties.
nsRefPtr<css::StyleRule> styleRule = do_QueryObject(rule);

View File

@ -1960,7 +1960,7 @@ nsXULElement::EnsureLocalStyle()
nsXULPrototypeAttribute *protoattr =
FindPrototypeAttribute(kNameSpaceID_None, nsGkAtoms::style);
if (protoattr && protoattr->mValue.Type() == nsAttrValue::eCSSStyleRule) {
nsCOMPtr<nsICSSRule> ruleClone =
nsRefPtr<css::Rule> ruleClone =
protoattr->mValue.GetCSSStyleRuleValue()->Clone();
nsString stringValue;
@ -2339,7 +2339,7 @@ nsresult nsXULElement::MakeHeavyweight()
// Style rules need to be cloned.
if (protoattr->mValue.Type() == nsAttrValue::eCSSStyleRule) {
nsCOMPtr<nsICSSRule> ruleClone =
nsRefPtr<css::Rule> ruleClone =
protoattr->mValue.GetCSSStyleRuleValue()->Clone();
nsString stringValue;

View File

@ -179,7 +179,6 @@
#include "nsIDOMStyleSheetList.h"
#include "nsIDOMCSSStyleDeclaration.h"
#include "nsIDOMCSSRule.h"
#include "nsICSSRule.h"
#include "nsICSSRuleList.h"
#include "nsIDOMRect.h"
#include "nsIDOMRGBColor.h"

View File

@ -42,21 +42,9 @@
#include "nsCSSPseudoElements.h"
// used to map attributes into CSS rules
#include "nsIDocument.h"
#include "nsStyleSet.h"
#include "nsIStyleSheet.h"
#include "nsIDOMCSSStyleSheet.h"
#include "nsICSSRule.h"
#include "nsStyleChangeList.h"
#include "nsFrameManager.h"
#include "nsNetUtil.h"
#include "nsIURI.h"
#include "nsContentCID.h"
#include "nsAutoPtr.h"
#include "nsStyleSet.h"
#include "nsStyleUtil.h"
#include "nsDisplayList.h"
#include "nsAttrName.h"
#include "nsRenderingContext.h"
eMathMLFrameType

View File

@ -43,7 +43,7 @@
#ifndef mozilla_css_GroupRule_h__
#define mozilla_css_GroupRule_h__
#include "Rule.h"
#include "mozilla/css/Rule.h"
#include "nsCOMArray.h"
#include "nsAutoPtr.h"
@ -65,7 +65,7 @@ protected:
virtual ~GroupRule();
public:
// implement part of nsIStyleRule and nsICSSRule
// implement part of nsIStyleRule and Rule
DECL_STYLE_RULE_INHERIT_NO_DOMRULE
virtual void SetStyleSheet(nsCSSStyleSheet* aSheet);
@ -75,12 +75,12 @@ public:
#endif
public:
void AppendStyleRule(nsICSSRule* aRule);
void AppendStyleRule(Rule* aRule);
PRInt32 StyleRuleCount() const { return mRules.Count(); }
nsICSSRule* GetStyleRuleAt(PRInt32 aIndex) const;
Rule* GetStyleRuleAt(PRInt32 aIndex) const;
typedef nsCOMArray<nsICSSRule>::nsCOMArrayEnumFunc RuleEnumFunc;
typedef nsCOMArray<Rule>::nsCOMArrayEnumFunc RuleEnumFunc;
PRBool EnumerateRulesForwards(RuleEnumFunc aFunc, void * aData) const;
/*
@ -90,8 +90,8 @@ public:
*/
nsresult DeleteStyleRuleAt(PRUint32 aIndex);
nsresult InsertStyleRulesAt(PRUint32 aIndex,
nsCOMArray<nsICSSRule>& aRules);
nsresult ReplaceStyleRule(nsICSSRule *aOld, nsICSSRule *aNew);
nsCOMArray<Rule>& aRules);
nsresult ReplaceStyleRule(Rule *aOld, Rule *aNew);
virtual PRBool UseForPresentation(nsPresContext* aPresContext,
nsMediaQueryResultCacheKey& aKey) = 0;
@ -109,7 +109,7 @@ protected:
PRUint32* _retval);
nsresult DeleteRule(PRUint32 aIndex);
nsCOMArray<nsICSSRule> mRules;
nsCOMArray<Rule> mRules;
nsRefPtr<GroupRuleRuleList> mRuleCollection; // lazily constructed
};

View File

@ -40,7 +40,7 @@
#ifndef mozilla_css_ImportRule_h__
#define mozilla_css_ImportRule_h__
#include "Rule.h"
#include "mozilla/css/Rule.h"
#include "nsIDOMCSSImportRule.h"
#include "nsCSSRules.h"
@ -73,9 +73,9 @@ public:
virtual void List(FILE* out = stdout, PRInt32 aIndent = 0) const;
#endif
// nsICSSRule methods
// Rule methods
virtual PRInt32 GetType() const;
virtual already_AddRefed<nsICSSRule> Clone() const;
virtual already_AddRefed<Rule> Clone() const;
void SetSheet(nsCSSStyleSheet*);

View File

@ -75,7 +75,6 @@ EXPORTS = \
nsICSSDeclaration.h \
nsICSSLoaderObserver.h \
nsICSSPseudoComparator.h \
nsICSSRule.h \
nsICSSRuleList.h \
nsICSSStyleRuleDOMWrapper.h \
nsIStyleRule.h \
@ -103,6 +102,7 @@ EXPORTS_mozilla/css = \
ImportRule.h \
Loader.h \
NameSpaceRule.h \
Rule.h \
StyleRule.h \
$(NULL)

View File

@ -40,12 +40,12 @@
#ifndef mozilla_css_NameSpaceRule_h__
#define mozilla_css_NameSpaceRule_h__
#include "Rule.h"
#include "mozilla/css/Rule.h"
#include "nsIDOMCSSRule.h"
class nsIAtom;
// IID for the nsCSSNameSpaceRule class {f0b0dbe1-5031-4a21-b06a-dc141ef2af98}
// IID for the NameSpaceRule class {f0b0dbe1-5031-4a21-b06a-dc141ef2af98}
#define NS_CSS_NAMESPACE_RULE_IMPL_CID \
{0xf0b0dbe1, 0x5031, 0x4a21, {0xb0, 0x6a, 0xdc, 0x14, 0x1e, 0xf2, 0xaf, 0x98}}
@ -74,9 +74,9 @@ public:
virtual void List(FILE* out = stdout, PRInt32 aIndent = 0) const;
#endif
// nsICSSRule methods
// Rule methods
virtual PRInt32 GetType() const;
virtual already_AddRefed<nsICSSRule> Clone() const;
virtual already_AddRefed<Rule> Clone() const;
nsIAtom* GetPrefix() const { return mPrefix; }

View File

@ -40,7 +40,8 @@
#ifndef mozilla_css_Rule_h___
#define mozilla_css_Rule_h___
#include "nsICSSRule.h"
#include "nsIStyleRule.h"
#include "nsIDOMCSSRule.h"
class nsIStyleSheet;
class nsCSSStyleSheet;
@ -58,7 +59,7 @@ virtual void MapRuleInfoInto(nsRuleData* aRuleData);
DECL_STYLE_RULE_INHERIT_NO_DOMRULE \
virtual nsIDOMCSSRule* GetDOMRuleWeak(nsresult* aResult);
class Rule : public nsICSSRule {
class Rule : public nsIStyleRule {
protected:
Rule()
: mSheet(nsnull),
@ -83,11 +84,48 @@ protected:
NS_DECL_OWNINGTHREAD
public:
// The constants in this list must maintain the following invariants:
// If a rule of type N must appear before a rule of type M in stylesheets
// then N < M
// Note that nsCSSStyleSheet::RebuildChildList assumes that no other kinds of
// rules can come between two rules of type IMPORT_RULE.
enum {
UNKNOWN_RULE = 0,
CHARSET_RULE,
IMPORT_RULE,
NAMESPACE_RULE,
STYLE_RULE,
MEDIA_RULE,
FONT_FACE_RULE,
PAGE_RULE,
#ifdef MOZ_CSS_ANIMATIONS
KEYFRAME_RULE,
KEYFRAMES_RULE,
#endif
DOCUMENT_RULE
};
virtual PRInt32 GetType() const = 0;
virtual nsIStyleSheet* GetStyleSheet() const;
virtual void SetStyleSheet(nsCSSStyleSheet* aSheet);
virtual void SetParentRule(GroupRule* aRule);
/**
* Clones |this|. Never returns NULL.
*/
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).
nsresult GetDOMRule(nsIDOMCSSRule** aDOMRule)
{
nsresult rv;
NS_IF_ADDREF(*aDOMRule = GetDOMRuleWeak(&rv));
return rv;
}
virtual nsIDOMCSSRule* GetDOMRuleWeak(nsresult* aResult) = 0;
protected:
nsCSSStyleSheet* mSheet;
GroupRule* mParentRule;

View File

@ -1306,9 +1306,8 @@ NS_INTERFACE_MAP_BEGIN(StyleRule)
return NS_OK;
}
else
NS_INTERFACE_MAP_ENTRY(nsICSSRule)
NS_INTERFACE_MAP_ENTRY(nsIStyleRule)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsICSSRule)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIStyleRule)
NS_INTERFACE_MAP_END
NS_IMPL_ADDREF_INHERITED(StyleRule, Rule)
@ -1336,13 +1335,13 @@ StyleRule::RuleMatched()
/* virtual */ PRInt32
StyleRule::GetType() const
{
return nsICSSRule::STYLE_RULE;
return Rule::STYLE_RULE;
}
/* virtual */ already_AddRefed<nsICSSRule>
/* virtual */ already_AddRefed<Rule>
StyleRule::Clone() const
{
nsCOMPtr<nsICSSRule> clone = new StyleRule(*this);
nsRefPtr<Rule> clone = new StyleRule(*this);
return clone.forget();
}

View File

@ -46,7 +46,7 @@
#define mozilla_css_StyleRule_h__
//#include <stdio.h>
#include "Rule.h"
#include "mozilla/css/Rule.h"
#include "nsString.h"
#include "nsCOMPtr.h"
#include "nsCSSPseudoElements.h"
@ -348,7 +348,7 @@ public:
virtual PRInt32 GetType() const;
virtual already_AddRefed<nsICSSRule> Clone() const;
virtual already_AddRefed<Rule> Clone() const;
nsIDOMCSSRule* GetDOMRuleWeak(nsresult* aResult);

View File

@ -670,9 +670,9 @@ nsAnimationManager::BuildAnimations(nsStyleContext* aStyleContext,
keyframes.Init(16); // FIXME: make infallible!
for (PRUint32 ruleIdx = 0, ruleEnd = rule->StyleRuleCount();
ruleIdx != ruleEnd; ++ruleIdx) {
nsICSSRule* cssRule = rule->GetStyleRuleAt(ruleIdx);
css::Rule* cssRule = rule->GetStyleRuleAt(ruleIdx);
NS_ABORT_IF_FALSE(cssRule, "must have rule");
NS_ABORT_IF_FALSE(cssRule->GetType() == nsICSSRule::KEYFRAME_RULE,
NS_ABORT_IF_FALSE(cssRule->GetType() == css::Rule::KEYFRAME_RULE,
"must be keyframe rule");
nsCSSKeyframeRule *kfRule = static_cast<nsCSSKeyframeRule*>(cssRule);

View File

@ -178,9 +178,9 @@ nsCSSProps::kParserVariantTable[eCSSProperty_COUNT_no_shorthands] = {
namespace {
// Rule processing function
typedef void (* RuleAppendFunc) (nsICSSRule* aRule, void* aData);
static void AppendRuleToArray(nsICSSRule* aRule, void* aArray);
static void AppendRuleToSheet(nsICSSRule* aRule, void* aParser);
typedef void (* RuleAppendFunc) (css::Rule* aRule, void* aData);
static void AppendRuleToArray(css::Rule* aRule, void* aArray);
static void AppendRuleToSheet(css::Rule* aRule, void* aParser);
// Your basic top-down recursive descent style parser
// The exposed methods and members of this class are precisely those
@ -227,7 +227,7 @@ public:
nsIURI* aSheetURL,
nsIURI* aBaseURL,
nsIPrincipal* aSheetPrincipal,
nsCOMArray<nsICSSRule>& aResult);
nsCOMArray<css::Rule>& aResult);
nsresult ParseProperty(const nsCSSProperty aPropID,
const nsAString& aPropValue,
@ -270,8 +270,8 @@ protected:
class nsAutoParseCompoundProperty;
friend class nsAutoParseCompoundProperty;
void AppendRule(nsICSSRule* aRule);
friend void AppendRuleToSheet(nsICSSRule*, void*); // calls AppendRule
void AppendRule(css::Rule* aRule);
friend void AppendRuleToSheet(css::Rule*, void*); // calls AppendRule
/**
* This helper class automatically calls SetParsingCompoundProperty in its
@ -703,12 +703,12 @@ public:
CSSParserImpl* mNextFree;
};
static void AppendRuleToArray(nsICSSRule* aRule, void* aArray)
static void AppendRuleToArray(css::Rule* aRule, void* aArray)
{
static_cast<nsCOMArray<nsICSSRule>*>(aArray)->AppendObject(aRule);
static_cast<nsCOMArray<css::Rule>*>(aArray)->AppendObject(aRule);
}
static void AppendRuleToSheet(nsICSSRule* aRule, void* aParser)
static void AppendRuleToSheet(css::Rule* aRule, void* aParser)
{
CSSParserImpl* parser = (CSSParserImpl*) aParser;
parser->AppendRule(aRule);
@ -921,15 +921,15 @@ CSSParserImpl::Parse(nsIUnicharInputStream* aInput,
PRInt32 ruleCount = mSheet->StyleRuleCount();
if (0 < ruleCount) {
nsICSSRule* lastRule = nsnull;
css::Rule* lastRule = nsnull;
mSheet->GetStyleRuleAt(ruleCount - 1, lastRule);
if (lastRule) {
switch (lastRule->GetType()) {
case nsICSSRule::CHARSET_RULE:
case nsICSSRule::IMPORT_RULE:
case css::Rule::CHARSET_RULE:
case css::Rule::IMPORT_RULE:
mSection = eCSSSection_Import;
break;
case nsICSSRule::NAMESPACE_RULE:
case css::Rule::NAMESPACE_RULE:
mSection = eCSSSection_NameSpace;
break;
default:
@ -1076,7 +1076,7 @@ CSSParserImpl::ParseRule(const nsAString& aRule,
nsIURI* aSheetURI,
nsIURI* aBaseURI,
nsIPrincipal* aSheetPrincipal,
nsCOMArray<nsICSSRule>& aResult)
nsCOMArray<css::Rule>& aResult)
{
NS_PRECONDITION(aSheetPrincipal, "Must have principal here!");
AssertInitialState();
@ -1646,7 +1646,7 @@ CSSParserImpl::ParseCharsetRule(RuleAppendFunc aAppendFunc,
return PR_FALSE;
}
nsCOMPtr<nsICSSRule> rule = new css::CharsetRule(charset);
nsRefPtr<css::CharsetRule> rule = new css::CharsetRule(charset);
(*aAppendFunc)(rule, aData);
return PR_TRUE;
@ -2582,7 +2582,7 @@ CSSParserImpl::PopGroup()
}
void
CSSParserImpl::AppendRule(nsICSSRule* aRule)
CSSParserImpl::AppendRule(css::Rule* aRule)
{
PRUint32 count = mGroupStack.Length();
if (0 < count) {
@ -8804,7 +8804,7 @@ nsCSSParser::ParseRule(const nsAString& aRule,
nsIURI* aSheetURI,
nsIURI* aBaseURI,
nsIPrincipal* aSheetPrincipal,
nsCOMArray<nsICSSRule>& aResult)
nsCOMArray<css::Rule>& aResult)
{
return static_cast<CSSParserImpl*>(mImpl)->
ParseRule(aRule, aSheetURI, aBaseURI, aSheetPrincipal, aResult);

View File

@ -46,7 +46,6 @@
#include "nsCOMArray.h"
#include "nsCOMPtr.h"
class nsICSSRule;
class nsCSSStyleSheet;
class nsIPrincipal;
class nsIURI;
@ -59,6 +58,7 @@ class nsCSSKeyframeRule;
namespace mozilla {
namespace css {
class Rule;
class Declaration;
class Loader;
class StyleRule;
@ -145,7 +145,7 @@ public:
nsIURI* aSheetURL,
nsIURI* aBaseURL,
nsIPrincipal* aSheetPrincipal,
nsCOMArray<nsICSSRule>& aResult);
nsCOMArray<mozilla::css::Rule>& aResult);
nsresult ParseProperty(const nsCSSProperty aPropID,
const nsAString& aPropValue,

View File

@ -2822,12 +2822,12 @@ struct CascadeEnumData {
* (3) add any @keyframes rules, in order, into data->mKeyframesRules.
*/
static PRBool
CascadeRuleEnumFunc(nsICSSRule* aRule, void* aData)
CascadeRuleEnumFunc(css::Rule* aRule, void* aData)
{
CascadeEnumData* data = (CascadeEnumData*)aData;
PRInt32 type = aRule->GetType();
if (nsICSSRule::STYLE_RULE == type) {
if (css::Rule::STYLE_RULE == type) {
css::StyleRule* styleRule = static_cast<css::StyleRule*>(aRule);
for (nsCSSSelectorList *sel = styleRule->Selector();
@ -2844,14 +2844,14 @@ CascadeRuleEnumFunc(nsICSSRule* aRule, void* aData)
sel->mSelectors));
}
}
else if (nsICSSRule::MEDIA_RULE == type ||
nsICSSRule::DOCUMENT_RULE == type) {
else if (css::Rule::MEDIA_RULE == type ||
css::Rule::DOCUMENT_RULE == type) {
css::GroupRule* groupRule = static_cast<css::GroupRule*>(aRule);
if (groupRule->UseForPresentation(data->mPresContext, data->mCacheKey))
if (!groupRule->EnumerateRulesForwards(CascadeRuleEnumFunc, aData))
return PR_FALSE;
}
else if (nsICSSRule::FONT_FACE_RULE == type) {
else if (css::Rule::FONT_FACE_RULE == type) {
nsCSSFontFaceRule *fontFaceRule = static_cast<nsCSSFontFaceRule*>(aRule);
nsFontFaceRuleContainer *ptr = data->mFontFaceRules.AppendElement();
if (!ptr)
@ -2860,7 +2860,7 @@ CascadeRuleEnumFunc(nsICSSRule* aRule, void* aData)
ptr->mSheetType = data->mSheetType;
}
#ifdef MOZ_CSS_ANIMATIONS
else if (nsICSSRule::KEYFRAMES_RULE == type) {
else if (css::Rule::KEYFRAMES_RULE == type) {
nsCSSKeyframesRule *keyframesRule =
static_cast<nsCSSKeyframesRule*>(aRule);
if (!data->mKeyframesRules.AppendElement(keyframesRule)) {

View File

@ -182,7 +182,7 @@ GroupRuleRuleList::GetItemAt(PRUint32 aIndex, nsresult* aResult)
*aResult = NS_OK;
if (mGroupRule) {
nsCOMPtr<nsICSSRule> rule = mGroupRule->GetStyleRuleAt(aIndex);
nsRefPtr<Rule> rule = mGroupRule->GetStyleRuleAt(aIndex);
if (rule) {
return rule->GetDOMRuleWeak(aResult);
}
@ -238,11 +238,10 @@ NS_IMPL_RELEASE_INHERITED(CharsetRule, css::Rule)
// QueryInterface implementation for CharsetRule
NS_INTERFACE_MAP_BEGIN(CharsetRule)
NS_INTERFACE_MAP_ENTRY(nsICSSRule)
NS_INTERFACE_MAP_ENTRY(nsIStyleRule)
NS_INTERFACE_MAP_ENTRY(nsIDOMCSSRule)
NS_INTERFACE_MAP_ENTRY(nsIDOMCSSCharsetRule)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsICSSRule)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIStyleRule)
NS_DOM_INTERFACE_MAP_ENTRY_CLASSINFO(CSSCharsetRule)
NS_INTERFACE_MAP_END
@ -264,13 +263,13 @@ CharsetRule::List(FILE* out, PRInt32 aIndent) const
/* virtual */ PRInt32
CharsetRule::GetType() const
{
return nsICSSRule::CHARSET_RULE;
return Rule::CHARSET_RULE;
}
/* virtual */ already_AddRefed<nsICSSRule>
/* virtual */ already_AddRefed<Rule>
CharsetRule::Clone() const
{
nsCOMPtr<nsICSSRule> clone = new CharsetRule(*this);
nsRefPtr<Rule> clone = new CharsetRule(*this);
return clone.forget();
}
@ -372,11 +371,10 @@ NS_IMPL_RELEASE_INHERITED(ImportRule, Rule)
// QueryInterface implementation for ImportRule
NS_INTERFACE_MAP_BEGIN(ImportRule)
NS_INTERFACE_MAP_ENTRY(nsICSSRule)
NS_INTERFACE_MAP_ENTRY(nsIStyleRule)
NS_INTERFACE_MAP_ENTRY(nsIDOMCSSRule)
NS_INTERFACE_MAP_ENTRY(nsIDOMCSSImportRule)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsICSSRule)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIStyleRule)
NS_DOM_INTERFACE_MAP_ENTRY_CLASSINFO(CSSImportRule)
NS_INTERFACE_MAP_END
@ -403,13 +401,13 @@ ImportRule::List(FILE* out, PRInt32 aIndent) const
/* virtual */ PRInt32
ImportRule::GetType() const
{
return nsICSSRule::IMPORT_RULE;
return Rule::IMPORT_RULE;
}
/* virtual */ already_AddRefed<nsICSSRule>
/* virtual */ already_AddRefed<Rule>
ImportRule::Clone() const
{
nsCOMPtr<nsICSSRule> clone = new ImportRule(*this);
nsRefPtr<Rule> clone = new ImportRule(*this);
return clone.forget();
}
@ -512,10 +510,10 @@ ImportRule::GetStyleSheet(nsIDOMCSSStyleSheet * *aStyleSheet)
DOMCI_DATA(CSSImportRule, css::ImportRule)
static PRBool
CloneRuleInto(nsICSSRule* aRule, void* aArray)
CloneRuleInto(css::Rule* aRule, void* aArray)
{
nsCOMPtr<nsICSSRule> clone = aRule->Clone();
static_cast<nsCOMArray<nsICSSRule>*>(aArray)->AppendObject(clone);
nsRefPtr<css::Rule> clone = aRule->Clone();
static_cast<nsCOMArray<css::Rule>*>(aArray)->AppendObject(clone);
return PR_TRUE;
}
@ -528,7 +526,7 @@ GroupRule::GroupRule()
}
static PRBool
SetParentRuleReference(nsICSSRule* aRule, void* aParentRule)
SetParentRuleReference(Rule* aRule, void* aParentRule)
{
GroupRule* parentRule = static_cast<GroupRule*>(aParentRule);
aRule->SetParentRule(parentRule);
@ -554,7 +552,7 @@ GroupRule::~GroupRule()
IMPL_STYLE_RULE_INHERIT_MAP_RULE_INFO_INTO(GroupRule, Rule)
static PRBool
SetStyleSheetReference(nsICSSRule* aRule, void* aSheet)
SetStyleSheetReference(Rule* aRule, void* aSheet)
{
nsCSSStyleSheet* sheet = (nsCSSStyleSheet*)aSheet;
aRule->SetStyleSheet(sheet);
@ -582,7 +580,7 @@ GroupRule::List(FILE* out, PRInt32 aIndent) const
#endif
void
GroupRule::AppendStyleRule(nsICSSRule* aRule)
GroupRule::AppendStyleRule(Rule* aRule)
{
mRules.AppendObject(aRule);
aRule->SetStyleSheet(mSheet);
@ -592,7 +590,7 @@ GroupRule::AppendStyleRule(nsICSSRule* aRule)
}
}
nsICSSRule*
Rule*
GroupRule::GetStyleRuleAt(PRInt32 aIndex) const
{
return mRules.SafeObjectAt(aIndex);
@ -614,7 +612,7 @@ GroupRule::EnumerateRulesForwards(RuleEnumFunc aFunc, void * aData) const
nsresult
GroupRule::DeleteStyleRuleAt(PRUint32 aIndex)
{
nsICSSRule* rule = mRules.SafeObjectAt(aIndex);
Rule* rule = mRules.SafeObjectAt(aIndex);
if (rule) {
rule->SetStyleSheet(nsnull);
rule->SetParentRule(nsnull);
@ -624,7 +622,7 @@ GroupRule::DeleteStyleRuleAt(PRUint32 aIndex)
nsresult
GroupRule::InsertStyleRulesAt(PRUint32 aIndex,
nsCOMArray<nsICSSRule>& aRules)
nsCOMArray<Rule>& aRules)
{
aRules.EnumerateForwards(SetStyleSheetReference, mSheet);
aRules.EnumerateForwards(SetParentRuleReference, this);
@ -635,7 +633,7 @@ GroupRule::InsertStyleRulesAt(PRUint32 aIndex,
}
nsresult
GroupRule::ReplaceStyleRule(nsICSSRule* aOld, nsICSSRule* aNew)
GroupRule::ReplaceStyleRule(Rule* aOld, Rule* aNew)
{
PRInt32 index = mRules.IndexOf(aOld);
NS_ENSURE_TRUE(index != -1, NS_ERROR_UNEXPECTED);
@ -654,7 +652,7 @@ GroupRule::AppendRulesToCssText(nsAString& aCssText)
// get all the rules
for (PRInt32 index = 0, count = mRules.Count(); index < count; ++index) {
nsICSSRule* rule = mRules.ObjectAt(index);
Rule* rule = mRules.ObjectAt(index);
nsCOMPtr<nsIDOMCSSRule> domRule;
rule->GetDOMRule(getter_AddRefs(domRule));
if (domRule) {
@ -752,11 +750,10 @@ NS_IMPL_RELEASE_INHERITED(MediaRule, Rule)
// QueryInterface implementation for MediaRule
NS_INTERFACE_MAP_BEGIN(MediaRule)
NS_INTERFACE_MAP_ENTRY(nsICSSRule)
NS_INTERFACE_MAP_ENTRY(nsIStyleRule)
NS_INTERFACE_MAP_ENTRY(nsIDOMCSSRule)
NS_INTERFACE_MAP_ENTRY(nsIDOMCSSMediaRule)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsICSSRule)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIStyleRule)
NS_DOM_INTERFACE_MAP_ENTRY_CLASSINFO(CSSMediaRule)
NS_INTERFACE_MAP_END
@ -795,13 +792,13 @@ MediaRule::List(FILE* out, PRInt32 aIndent) const
/* virtual */ PRInt32
MediaRule::GetType() const
{
return nsICSSRule::MEDIA_RULE;
return Rule::MEDIA_RULE;
}
/* virtual */ already_AddRefed<nsICSSRule>
/* virtual */ already_AddRefed<Rule>
MediaRule::Clone() const
{
nsCOMPtr<nsICSSRule> clone = new MediaRule(*this);
nsRefPtr<Rule> clone = new MediaRule(*this);
return clone.forget();
}
@ -922,11 +919,10 @@ NS_IMPL_RELEASE_INHERITED(DocumentRule, Rule)
// QueryInterface implementation for DocumentRule
NS_INTERFACE_MAP_BEGIN(DocumentRule)
NS_INTERFACE_MAP_ENTRY(nsICSSRule)
NS_INTERFACE_MAP_ENTRY(nsIStyleRule)
NS_INTERFACE_MAP_ENTRY(nsIDOMCSSRule)
NS_INTERFACE_MAP_ENTRY(nsIDOMCSSMozDocumentRule)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsICSSRule)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIStyleRule)
NS_DOM_INTERFACE_MAP_ENTRY_CLASSINFO(CSSMozDocumentRule)
NS_INTERFACE_MAP_END
@ -967,13 +963,13 @@ DocumentRule::List(FILE* out, PRInt32 aIndent) const
/* virtual */ PRInt32
DocumentRule::GetType() const
{
return nsICSSRule::DOCUMENT_RULE;
return Rule::DOCUMENT_RULE;
}
/* virtual */ already_AddRefed<nsICSSRule>
/* virtual */ already_AddRefed<Rule>
DocumentRule::Clone() const
{
nsCOMPtr<nsICSSRule> clone = new DocumentRule(*this);
nsRefPtr<Rule> clone = new DocumentRule(*this);
return clone.forget();
}
@ -1147,10 +1143,9 @@ NS_INTERFACE_MAP_BEGIN(NameSpaceRule)
return NS_OK;
}
else
NS_INTERFACE_MAP_ENTRY(nsICSSRule)
NS_INTERFACE_MAP_ENTRY(nsIStyleRule)
NS_INTERFACE_MAP_ENTRY(nsIDOMCSSRule)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsICSSRule)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIStyleRule)
NS_DOM_INTERFACE_MAP_ENTRY_CLASSINFO(CSSNameSpaceRule)
NS_INTERFACE_MAP_END
@ -1181,13 +1176,13 @@ NameSpaceRule::List(FILE* out, PRInt32 aIndent) const
/* virtual */ PRInt32
NameSpaceRule::GetType() const
{
return nsICSSRule::NAMESPACE_RULE;
return Rule::NAMESPACE_RULE;
}
/* virtual */ already_AddRefed<nsICSSRule>
/* virtual */ already_AddRefed<Rule>
NameSpaceRule::Clone() const
{
nsCOMPtr<nsICSSRule> clone = new NameSpaceRule(*this);
nsRefPtr<Rule> clone = new NameSpaceRule(*this);
return clone.forget();
}
@ -1574,10 +1569,10 @@ nsCSSFontFaceStyleDecl::GetParentRule(nsIDOMCSSRule** aParentRule)
// nsCSSFontFaceRule
//
/* virtual */ already_AddRefed<nsICSSRule>
/* virtual */ already_AddRefed<css::Rule>
nsCSSFontFaceRule::Clone() const
{
nsCOMPtr<nsICSSRule> clone = new nsCSSFontFaceRule(*this);
nsRefPtr<css::Rule> clone = new nsCSSFontFaceRule(*this);
return clone.forget();
}
@ -1588,11 +1583,10 @@ DOMCI_DATA(CSSFontFaceRule, nsCSSFontFaceRule)
// QueryInterface implementation for nsCSSFontFaceRule
NS_INTERFACE_MAP_BEGIN(nsCSSFontFaceRule)
NS_INTERFACE_MAP_ENTRY(nsICSSRule)
NS_INTERFACE_MAP_ENTRY(nsIStyleRule)
NS_INTERFACE_MAP_ENTRY(nsIDOMCSSFontFaceRule)
NS_INTERFACE_MAP_ENTRY(nsIDOMCSSRule)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsICSSRule)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIStyleRule)
NS_DOM_INTERFACE_MAP_ENTRY_CLASSINFO(CSSFontFaceRule)
NS_INTERFACE_MAP_END
@ -1632,7 +1626,7 @@ nsCSSFontFaceRule::List(FILE* out, PRInt32 aIndent) const
/* virtual */ PRInt32
nsCSSFontFaceRule::GetType() const
{
return nsICSSRule::FONT_FACE_RULE;
return css::Rule::FONT_FACE_RULE;
}
NS_IMETHODIMP
@ -1783,10 +1777,10 @@ nsCSSKeyframeRule::~nsCSSKeyframeRule()
}
}
/* virtual */ already_AddRefed<nsICSSRule>
/* virtual */ already_AddRefed<css::Rule>
nsCSSKeyframeRule::Clone() const
{
nsCOMPtr<nsICSSRule> clone = new nsCSSKeyframeRule(*this);
nsRefPtr<css::Rule> clone = new nsCSSKeyframeRule(*this);
return clone.forget();
}
@ -1797,11 +1791,10 @@ DOMCI_DATA(MozCSSKeyframeRule, nsCSSKeyframeRule)
// QueryInterface implementation for nsCSSKeyframeRule
NS_INTERFACE_MAP_BEGIN(nsCSSKeyframeRule)
NS_INTERFACE_MAP_ENTRY(nsICSSRule)
NS_INTERFACE_MAP_ENTRY(nsIStyleRule)
NS_INTERFACE_MAP_ENTRY(nsIDOMMozCSSKeyframeRule)
NS_INTERFACE_MAP_ENTRY(nsIDOMCSSRule)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsICSSRule)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIStyleRule)
NS_DOM_INTERFACE_MAP_ENTRY_CLASSINFO(MozCSSKeyframeRule)
NS_INTERFACE_MAP_END
@ -1833,7 +1826,7 @@ nsCSSKeyframeRule::List(FILE* out, PRInt32 aIndent) const
/* virtual */ PRInt32
nsCSSKeyframeRule::GetType() const
{
return nsICSSRule::KEYFRAME_RULE;
return css::Rule::KEYFRAME_RULE;
}
NS_IMETHODIMP
@ -1953,10 +1946,10 @@ nsCSSKeyframesRule::~nsCSSKeyframesRule()
{
}
/* virtual */ already_AddRefed<nsICSSRule>
/* virtual */ already_AddRefed<css::Rule>
nsCSSKeyframesRule::Clone() const
{
nsCOMPtr<nsICSSRule> clone = new nsCSSKeyframesRule(*this);
nsRefPtr<css::Rule> clone = new nsCSSKeyframesRule(*this);
return clone.forget();
}
@ -1967,11 +1960,10 @@ DOMCI_DATA(MozCSSKeyframesRule, nsCSSKeyframesRule)
// QueryInterface implementation for nsCSSKeyframesRule
NS_INTERFACE_MAP_BEGIN(nsCSSKeyframesRule)
NS_INTERFACE_MAP_ENTRY(nsICSSRule)
NS_INTERFACE_MAP_ENTRY(nsIStyleRule)
NS_INTERFACE_MAP_ENTRY(nsIDOMCSSRule)
NS_INTERFACE_MAP_ENTRY(nsIDOMMozCSSKeyframesRule)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsICSSRule)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIStyleRule)
NS_DOM_INTERFACE_MAP_ENTRY_CLASSINFO(MozCSSKeyframesRule)
NS_INTERFACE_MAP_END
@ -1986,7 +1978,7 @@ nsCSSKeyframesRule::List(FILE* out, PRInt32 aIndent) const
/* virtual */ PRInt32
nsCSSKeyframesRule::GetType() const
{
return nsICSSRule::KEYFRAMES_RULE;
return css::Rule::KEYFRAMES_RULE;
}
NS_IMETHODIMP

View File

@ -43,7 +43,6 @@
#ifndef nsCSSRules_h_
#define nsCSSRules_h_
#include "Rule.h"
#include "mozilla/css/GroupRule.h"
#include "nsIDOMCSSMediaRule.h"
#include "nsIDOMCSSMozDocumentRule.h"
@ -90,10 +89,10 @@ public:
virtual void List(FILE* out = stdout, PRInt32 aIndent = 0) const;
#endif
// nsICSSRule methods
// Rule methods
virtual void SetStyleSheet(nsCSSStyleSheet* aSheet); //override GroupRule
virtual PRInt32 GetType() const;
virtual already_AddRefed<nsICSSRule> Clone() const;
virtual already_AddRefed<Rule> Clone() const;
virtual nsIDOMCSSRule* GetDOMRuleWeak(nsresult *aResult)
{
*aResult = NS_OK;
@ -134,9 +133,9 @@ public:
virtual void List(FILE* out = stdout, PRInt32 aIndent = 0) const;
#endif
// nsICSSRule methods
// Rule methods
virtual PRInt32 GetType() const;
virtual already_AddRefed<nsICSSRule> Clone() const;
virtual already_AddRefed<Rule> Clone() const;
virtual nsIDOMCSSRule* GetDOMRuleWeak(nsresult *aResult)
{
*aResult = NS_OK;
@ -234,11 +233,11 @@ public:
virtual void List(FILE* out = stdout, PRInt32 aIndent = 0) const;
#endif
// nsICSSRule methods
// Rule methods
DECL_STYLE_RULE_INHERIT
virtual PRInt32 GetType() const;
virtual already_AddRefed<nsICSSRule> Clone() const;
virtual already_AddRefed<mozilla::css::Rule> Clone() const;
// nsIDOMCSSRule interface
NS_DECL_NSIDOMCSSRULE
@ -298,9 +297,9 @@ public:
virtual void List(FILE* out = stdout, PRInt32 aIndent = 0) const;
#endif
// nsICSSRule methods
// Rule methods
virtual PRInt32 GetType() const;
virtual already_AddRefed<nsICSSRule> Clone() const;
virtual already_AddRefed<Rule> Clone() const;
// nsIDOMCSSRule interface
NS_DECL_NSIDOMCSSRULE
@ -361,10 +360,10 @@ public:
{
mKeys.SwapElements(aKeys);
}
private:
nsCSSKeyframeRule(const nsCSSKeyframeRule& aCopy);
~nsCSSKeyframeRule();
public:
NS_DECL_ISUPPORTS
// nsIStyleRule methods
@ -372,10 +371,10 @@ public:
virtual void List(FILE* out = stdout, PRInt32 aIndent = 0) const;
#endif
// nsICSSRule methods
// Rule methods
DECL_STYLE_RULE_INHERIT
virtual PRInt32 GetType() const;
virtual already_AddRefed<nsICSSRule> Clone() const;
virtual already_AddRefed<mozilla::css::Rule> Clone() const;
// nsIDOMCSSRule interface
NS_DECL_NSIDOMCSSRULE
@ -403,9 +402,10 @@ public:
: mName(aName)
{
}
private:
nsCSSKeyframesRule(const nsCSSKeyframesRule& aCopy);
~nsCSSKeyframesRule();
public:
NS_DECL_ISUPPORTS_INHERITED
// nsIStyleRule methods
@ -413,9 +413,9 @@ public:
virtual void List(FILE* out = stdout, PRInt32 aIndent = 0) const;
#endif
// nsICSSRule methods
// Rule methods
virtual PRInt32 GetType() const;
virtual already_AddRefed<nsICSSRule> Clone() const;
virtual already_AddRefed<mozilla::css::Rule> Clone() const;
virtual nsIDOMCSSRule* GetDOMRuleWeak(nsresult *aResult)
{
*aResult = NS_OK;

View File

@ -148,7 +148,7 @@ CSSRuleListImpl::GetItemAt(PRUint32 aIndex, nsresult* aResult)
// ensure rules have correct parent
if (mStyleSheet->EnsureUniqueInner() !=
nsCSSStyleSheet::eUniqueInner_CloneFailed) {
nsCOMPtr<nsICSSRule> rule;
nsRefPtr<css::Rule> rule;
result = mStyleSheet->GetStyleRuleAt(aIndex, *getter_AddRefs(rule));
if (rule) {
@ -805,7 +805,7 @@ nsCSSStyleSheetInner::nsCSSStyleSheetInner(nsCSSStyleSheet* aPrimarySheet)
mPrincipal = do_CreateInstance("@mozilla.org/nullprincipal;1");
}
static PRBool SetStyleSheetReference(nsICSSRule* aRule, void* aSheet)
static PRBool SetStyleSheetReference(css::Rule* aRule, void* aSheet)
{
if (aRule) {
aRule->SetStyleSheet(static_cast<nsCSSStyleSheet*>(aSheet));
@ -814,10 +814,10 @@ static PRBool SetStyleSheetReference(nsICSSRule* aRule, void* aSheet)
}
static PRBool
CloneRuleInto(nsICSSRule* aRule, void* aArray)
CloneRuleInto(css::Rule* aRule, void* aArray)
{
nsCOMPtr<nsICSSRule> clone = aRule->Clone();
static_cast<nsCOMArray<nsICSSRule>*>(aArray)->AppendObject(clone);
nsRefPtr<css::Rule> clone = aRule->Clone();
static_cast<nsCOMArray<css::Rule>*>(aArray)->AppendObject(clone);
return PR_TRUE;
}
@ -841,15 +841,15 @@ struct ChildSheetListBuilder {
};
PRBool
nsCSSStyleSheet::RebuildChildList(nsICSSRule* aRule, void* aBuilder)
nsCSSStyleSheet::RebuildChildList(css::Rule* aRule, void* aBuilder)
{
PRInt32 type = aRule->GetType();
if (type < nsICSSRule::IMPORT_RULE) {
if (type < css::Rule::IMPORT_RULE) {
// Keep going till we get to the import rules.
return PR_TRUE;
}
if (type != nsICSSRule::IMPORT_RULE) {
if (type != css::Rule::IMPORT_RULE) {
// We're past all the import rules; stop the enumeration.
return PR_FALSE;
}
@ -942,9 +942,9 @@ nsCSSStyleSheetInner::RemoveSheet(nsCSSStyleSheet* aSheet)
}
static void
AddNamespaceRuleToMap(nsICSSRule* aRule, nsXMLNameSpaceMap* aMap)
AddNamespaceRuleToMap(css::Rule* aRule, nsXMLNameSpaceMap* aMap)
{
NS_ASSERTION(aRule->GetType() == nsICSSRule::NAMESPACE_RULE, "Bogus rule type");
NS_ASSERTION(aRule->GetType() == css::Rule::NAMESPACE_RULE, "Bogus rule type");
nsRefPtr<css::NameSpaceRule> nameSpaceRule = do_QueryObject(aRule);
@ -955,17 +955,17 @@ AddNamespaceRuleToMap(nsICSSRule* aRule, nsXMLNameSpaceMap* aMap)
}
static PRBool
CreateNameSpace(nsICSSRule* aRule, void* aNameSpacePtr)
CreateNameSpace(css::Rule* aRule, void* aNameSpacePtr)
{
PRInt32 type = aRule->GetType();
if (nsICSSRule::NAMESPACE_RULE == type) {
if (css::Rule::NAMESPACE_RULE == type) {
AddNamespaceRuleToMap(aRule,
static_cast<nsXMLNameSpaceMap*>(aNameSpacePtr));
return PR_TRUE;
}
// stop if not namespace, import or charset because namespace can't follow
// anything else
return (nsICSSRule::CHARSET_RULE == type || nsICSSRule::IMPORT_RULE == type);
return (css::Rule::CHARSET_RULE == type || css::Rule::IMPORT_RULE == type);
}
void
@ -1329,7 +1329,7 @@ nsCSSStyleSheet::InsertStyleSheetAt(nsCSSStyleSheet* aSheet, PRInt32 aIndex)
}
void
nsCSSStyleSheet::PrependStyleRule(nsICSSRule* aRule)
nsCSSStyleSheet::PrependStyleRule(css::Rule* aRule)
{
NS_PRECONDITION(nsnull != aRule, "null arg");
@ -1338,7 +1338,7 @@ nsCSSStyleSheet::PrependStyleRule(nsICSSRule* aRule)
aRule->SetStyleSheet(this);
DidDirty();
if (nsICSSRule::NAMESPACE_RULE == aRule->GetType()) {
if (css::Rule::NAMESPACE_RULE == aRule->GetType()) {
// no api to prepend a namespace (ugh), release old ones and re-create them all
mInner->RebuildNameSpaces();
}
@ -1346,7 +1346,7 @@ nsCSSStyleSheet::PrependStyleRule(nsICSSRule* aRule)
}
void
nsCSSStyleSheet::AppendStyleRule(nsICSSRule* aRule)
nsCSSStyleSheet::AppendStyleRule(css::Rule* aRule)
{
NS_PRECONDITION(nsnull != aRule, "null arg");
@ -1355,7 +1355,7 @@ nsCSSStyleSheet::AppendStyleRule(nsICSSRule* aRule)
aRule->SetStyleSheet(this);
DidDirty();
if (nsICSSRule::NAMESPACE_RULE == aRule->GetType()) {
if (css::Rule::NAMESPACE_RULE == aRule->GetType()) {
#ifdef DEBUG
nsresult rv =
#endif
@ -1367,7 +1367,7 @@ nsCSSStyleSheet::AppendStyleRule(nsICSSRule* aRule)
}
void
nsCSSStyleSheet::ReplaceStyleRule(nsICSSRule* aOld, nsICSSRule* aNew)
nsCSSStyleSheet::ReplaceStyleRule(css::Rule* aOld, css::Rule* aNew)
{
NS_PRECONDITION(mInner->mOrderedRules.Count() != 0, "can't have old rule");
NS_PRECONDITION(mInner->mComplete, "No replacing in an incomplete sheet!");
@ -1383,8 +1383,8 @@ nsCSSStyleSheet::ReplaceStyleRule(nsICSSRule* aOld, nsICSSRule* aNew)
aNew->SetStyleSheet(this);
aOld->SetStyleSheet(nsnull);
DidDirty();
NS_ASSERTION(nsICSSRule::NAMESPACE_RULE != aNew->GetType(), "not yet implemented");
NS_ASSERTION(nsICSSRule::NAMESPACE_RULE != aOld->GetType(), "not yet implemented");
NS_ASSERTION(css::Rule::NAMESPACE_RULE != aNew->GetType(), "not yet implemented");
NS_ASSERTION(css::Rule::NAMESPACE_RULE != aOld->GetType(), "not yet implemented");
}
}
@ -1395,7 +1395,7 @@ nsCSSStyleSheet::StyleRuleCount() const
}
nsresult
nsCSSStyleSheet::GetStyleRuleAt(PRInt32 aIndex, nsICSSRule*& aRule) const
nsCSSStyleSheet::GetStyleRuleAt(PRInt32 aIndex, css::Rule*& aRule) const
{
// Important: If this function is ever made scriptable, we must add
// a security check here. See GetCssRules below for an example.
@ -1477,7 +1477,7 @@ nsCSSStyleSheet::Clone(nsCSSStyleSheet* aCloneParent,
#ifdef DEBUG
static void
ListRules(const nsCOMArray<nsICSSRule>& aRules, FILE* aOut, PRInt32 aIndent)
ListRules(const nsCOMArray<css::Rule>& aRules, FILE* aOut, PRInt32 aIndent)
{
for (PRInt32 index = aRules.Count() - 1; index >= 0; --index) {
aRules.ObjectAt(index)->List(aOut, aIndent);
@ -1597,7 +1597,7 @@ nsCSSStyleSheet::SubjectSubsumesInnerPrincipal() const
}
nsresult
nsCSSStyleSheet::RegisterNamespaceRule(nsICSSRule* aRule)
nsCSSStyleSheet::RegisterNamespaceRule(css::Rule* aRule)
{
if (!mInner->mNameSpaceMap) {
nsresult rv = mInner->CreateNamespaceMap();
@ -1785,7 +1785,7 @@ nsCSSStyleSheet::InsertRuleInternal(const nsAString& aRule,
mozAutoDocUpdate updateBatch(mDocument, UPDATE_STYLE, PR_TRUE);
nsCOMArray<nsICSSRule> rules;
nsCOMArray<css::Rule> rules;
result = css.ParseRule(aRule, mInner->mSheetURI, mInner->mBaseURI,
mInner->mPrincipal, rules);
if (NS_FAILED(result))
@ -1800,52 +1800,52 @@ nsCSSStyleSheet::InsertRuleInternal(const nsAString& aRule,
// Hierarchy checking. Just check the first and last rule in the list.
// check that we're not inserting before a charset rule
nsICSSRule* nextRule = mInner->mOrderedRules.SafeObjectAt(aIndex);
css::Rule* nextRule = mInner->mOrderedRules.SafeObjectAt(aIndex);
if (nextRule) {
PRInt32 nextType = nextRule->GetType();
if (nextType == nsICSSRule::CHARSET_RULE) {
if (nextType == css::Rule::CHARSET_RULE) {
return NS_ERROR_DOM_HIERARCHY_REQUEST_ERR;
}
// check last rule in list
nsICSSRule* lastRule = rules.ObjectAt(rulecount - 1);
css::Rule* lastRule = rules.ObjectAt(rulecount - 1);
PRInt32 lastType = lastRule->GetType();
if (nextType == nsICSSRule::IMPORT_RULE &&
lastType != nsICSSRule::CHARSET_RULE &&
lastType != nsICSSRule::IMPORT_RULE) {
if (nextType == css::Rule::IMPORT_RULE &&
lastType != css::Rule::CHARSET_RULE &&
lastType != css::Rule::IMPORT_RULE) {
return NS_ERROR_DOM_HIERARCHY_REQUEST_ERR;
}
if (nextType == nsICSSRule::NAMESPACE_RULE &&
lastType != nsICSSRule::CHARSET_RULE &&
lastType != nsICSSRule::IMPORT_RULE &&
lastType != nsICSSRule::NAMESPACE_RULE) {
if (nextType == css::Rule::NAMESPACE_RULE &&
lastType != css::Rule::CHARSET_RULE &&
lastType != css::Rule::IMPORT_RULE &&
lastType != css::Rule::NAMESPACE_RULE) {
return NS_ERROR_DOM_HIERARCHY_REQUEST_ERR;
}
}
// check first rule in list
nsICSSRule* firstRule = rules.ObjectAt(0);
css::Rule* firstRule = rules.ObjectAt(0);
PRInt32 firstType = firstRule->GetType();
if (aIndex != 0) {
if (firstType == nsICSSRule::CHARSET_RULE) { // no inserting charset at nonzero position
if (firstType == css::Rule::CHARSET_RULE) { // no inserting charset at nonzero position
return NS_ERROR_DOM_HIERARCHY_REQUEST_ERR;
}
nsICSSRule* prevRule = mInner->mOrderedRules.SafeObjectAt(aIndex - 1);
css::Rule* prevRule = mInner->mOrderedRules.SafeObjectAt(aIndex - 1);
PRInt32 prevType = prevRule->GetType();
if (firstType == nsICSSRule::IMPORT_RULE &&
prevType != nsICSSRule::CHARSET_RULE &&
prevType != nsICSSRule::IMPORT_RULE) {
if (firstType == css::Rule::IMPORT_RULE &&
prevType != css::Rule::CHARSET_RULE &&
prevType != css::Rule::IMPORT_RULE) {
return NS_ERROR_DOM_HIERARCHY_REQUEST_ERR;
}
if (firstType == nsICSSRule::NAMESPACE_RULE &&
prevType != nsICSSRule::CHARSET_RULE &&
prevType != nsICSSRule::IMPORT_RULE &&
prevType != nsICSSRule::NAMESPACE_RULE) {
if (firstType == css::Rule::NAMESPACE_RULE &&
prevType != css::Rule::CHARSET_RULE &&
prevType != css::Rule::IMPORT_RULE &&
prevType != css::Rule::NAMESPACE_RULE) {
return NS_ERROR_DOM_HIERARCHY_REQUEST_ERR;
}
}
@ -1855,11 +1855,11 @@ nsCSSStyleSheet::InsertRuleInternal(const nsAString& aRule,
DidDirty();
for (PRInt32 counter = 0; counter < rulecount; counter++) {
nsICSSRule* cssRule = rules.ObjectAt(counter);
css::Rule* cssRule = rules.ObjectAt(counter);
cssRule->SetStyleSheet(this);
PRInt32 type = cssRule->GetType();
if (type == nsICSSRule::NAMESPACE_RULE) {
if (type == css::Rule::NAMESPACE_RULE) {
// XXXbz does this screw up when inserting a namespace rule before
// another namespace rule that binds the same prefix to a different
// namespace?
@ -1870,7 +1870,7 @@ nsCSSStyleSheet::InsertRuleInternal(const nsAString& aRule,
// We don't notify immediately for @import rules, but rather when
// the sheet the rule is importing is loaded
PRBool notify = PR_TRUE;
if (type == nsICSSRule::IMPORT_RULE) {
if (type == css::Rule::IMPORT_RULE) {
nsCOMPtr<nsIDOMCSSImportRule> importRule(do_QueryInterface(cssRule));
NS_ASSERTION(importRule, "Rule which has type IMPORT_RULE and does not implement nsIDOMCSSImportRule!");
nsCOMPtr<nsIDOMCSSStyleSheet> childSheet;
@ -1915,7 +1915,7 @@ nsCSSStyleSheet::DeleteRule(PRUint32 aIndex)
"Too many style rules!");
// Hold a strong ref to the rule so it doesn't die when we RemoveObjectAt
nsCOMPtr<nsICSSRule> rule = mInner->mOrderedRules.ObjectAt(aIndex);
nsRefPtr<css::Rule> rule = mInner->mOrderedRules.ObjectAt(aIndex);
if (rule) {
mInner->mOrderedRules.RemoveObjectAt(aIndex);
rule->SetStyleSheet(nsnull);
@ -1936,7 +1936,7 @@ nsCSSStyleSheet::DeleteRuleFromGroup(css::GroupRule* aGroup, PRUint32 aIndex)
NS_ENSURE_ARG_POINTER(aGroup);
NS_ASSERTION(mInner->mComplete, "No deleting from an incomplete sheet!");
nsresult result;
nsCOMPtr<nsICSSRule> rule = aGroup->GetStyleRuleAt(aIndex);
nsRefPtr<css::Rule> rule = aGroup->GetStyleRuleAt(aIndex);
NS_ENSURE_TRUE(rule, NS_ERROR_ILLEGAL_VALUE);
// check that the rule actually belongs to this sheet!
@ -1997,7 +1997,7 @@ nsCSSStyleSheet::InsertRuleIntoGroup(const nsAString & aRule,
result = WillDirty();
NS_ENSURE_SUCCESS(result, result);
nsCOMArray<nsICSSRule> rules;
nsCOMArray<css::Rule> rules;
result = css.ParseRule(aRule, mInner->mSheetURI, mInner->mBaseURI,
mInner->mPrincipal, rules);
NS_ENSURE_SUCCESS(result, result);
@ -2009,11 +2009,11 @@ nsCSSStyleSheet::InsertRuleIntoGroup(const nsAString & aRule,
}
PRInt32 counter;
nsICSSRule* rule;
css::Rule* rule;
for (counter = 0; counter < rulecount; counter++) {
// Only rulesets are allowed in a group as of CSS2
rule = rules.ObjectAt(counter);
if (rule->GetType() != nsICSSRule::STYLE_RULE) {
if (rule->GetType() != css::Rule::STYLE_RULE) {
return NS_ERROR_DOM_HIERARCHY_REQUEST_ERR;
}
}
@ -2035,7 +2035,7 @@ nsCSSStyleSheet::InsertRuleIntoGroup(const nsAString & aRule,
nsresult
nsCSSStyleSheet::ReplaceRuleInGroup(css::GroupRule* aGroup,
nsICSSRule* aOld, nsICSSRule* aNew)
css::Rule* aOld, css::Rule* aNew)
{
nsresult result;
NS_PRECONDITION(mInner->mComplete, "No replacing in an incomplete sheet!");

View File

@ -52,7 +52,6 @@
#include "nsICSSLoaderObserver.h"
#include "nsCOMArray.h"
class nsICSSRule;
class nsXMLNameSpaceMap;
class nsCSSRuleProcessor;
class nsMediaList;
@ -66,6 +65,7 @@ template<class E, class A> class nsTArray;
namespace mozilla {
namespace css {
class Rule;
class GroupRule;
class ImportRule;
}
@ -100,7 +100,7 @@ private:
nsCOMPtr<nsIURI> mOriginalSheetURI; // for GetHref. Can be null.
nsCOMPtr<nsIURI> mBaseURI; // for resolving relative URIs
nsCOMPtr<nsIPrincipal> mPrincipal;
nsCOMArray<nsICSSRule> mOrderedRules;
nsCOMArray<mozilla::css::Rule> mOrderedRules;
nsAutoPtr<nsXMLNameSpaceMap> mNameSpaceMap;
// Linked list of child sheets. This is al fundamentally broken, because
// each of the child sheets has a unique parent... We can only hope (and
@ -165,16 +165,16 @@ public:
void InsertStyleSheetAt(nsCSSStyleSheet* aSheet, PRInt32 aIndex);
// XXX do these belong here or are they generic?
void PrependStyleRule(nsICSSRule* aRule);
void AppendStyleRule(nsICSSRule* aRule);
void ReplaceStyleRule(nsICSSRule* aOld, nsICSSRule* aNew);
void PrependStyleRule(mozilla::css::Rule* aRule);
void AppendStyleRule(mozilla::css::Rule* aRule);
void ReplaceStyleRule(mozilla::css::Rule* aOld, mozilla::css::Rule* aNew);
PRInt32 StyleRuleCount() const;
nsresult GetStyleRuleAt(PRInt32 aIndex, nsICSSRule*& aRule) const;
nsresult GetStyleRuleAt(PRInt32 aIndex, mozilla::css::Rule*& aRule) const;
nsresult DeleteRuleFromGroup(mozilla::css::GroupRule* aGroup, PRUint32 aIndex);
nsresult InsertRuleIntoGroup(const nsAString& aRule, mozilla::css::GroupRule* aGroup, PRUint32 aIndex, PRUint32* _retval);
nsresult ReplaceRuleInGroup(mozilla::css::GroupRule* aGroup, nsICSSRule* aOld, nsICSSRule* aNew);
nsresult ReplaceRuleInGroup(mozilla::css::GroupRule* aGroup, mozilla::css::Rule* aOld, mozilla::css::Rule* aNew);
PRInt32 StyleSheetCount() const;
@ -260,7 +260,7 @@ public:
// Function used as a callback to rebuild our inner's child sheet
// list after we clone a unique inner for ourselves.
static PRBool RebuildChildList(nsICSSRule* aRule, void* aBuilder);
static PRBool RebuildChildList(mozilla::css::Rule* aRule, void* aBuilder);
private:
nsCSSStyleSheet(const nsCSSStyleSheet& aCopy,
@ -287,7 +287,7 @@ protected:
nsresult SubjectSubsumesInnerPrincipal() const;
// Add the namespace mapping from this @namespace rule to our namespace map
nsresult RegisterNamespaceRule(nsICSSRule* aRule);
nsresult RegisterNamespaceRule(mozilla::css::Rule* aRule);
protected:
nsString mTitle;

View File

@ -44,7 +44,7 @@
#include "mozilla/css/Loader.h"
#include "nsCSSStyleSheet.h"
#include "nsIStyleRule.h"
#include "nsICSSRule.h"
#include "mozilla/css/Rule.h"
#include "mozilla/css/Declaration.h"
#include "nsCSSProps.h"
#include "nsCOMPtr.h"
@ -265,7 +265,7 @@ nsDOMCSSDeclaration::RemoveProperty(const nsAString& aPropertyName,
}
/* static */ void
nsDOMCSSDeclaration::GetCSSParsingEnvironmentForRule(nsICSSRule* aRule,
nsDOMCSSDeclaration::GetCSSParsingEnvironmentForRule(css::Rule* aRule,
CSSParsingEnvironment& aCSSParseEnv)
{
nsIStyleSheet* sheet = aRule ? aRule->GetStyleSheet() : nsnull;

View File

@ -48,12 +48,12 @@ class nsCSSParser;
class nsIURI;
class nsIPrincipal;
class nsIDocument;
class nsICSSRule;
namespace mozilla {
namespace css {
class Declaration;
class Loader;
class Rule;
}
}
@ -120,8 +120,8 @@ protected:
virtual void GetCSSParsingEnvironment(CSSParsingEnvironment& aCSSParseEnv) = 0;
// An implementation for GetCSSParsingEnvironment for callers wrapping
// an nsICSSRule.
static void GetCSSParsingEnvironmentForRule(nsICSSRule* aRule,
// an css::Rule.
static void GetCSSParsingEnvironmentForRule(mozilla::css::Rule* aRule,
CSSParsingEnvironment& aCSSParseEnv);
nsresult ParsePropertyValue(const nsCSSProperty aPropID,

View File

@ -478,7 +478,7 @@ nsUserFontSet::InsertRule(nsCSSFontFaceRule *aRule, PRUint8 aSheetType,
nsTArray<FontFaceRuleRecord>& aOldRules,
PRBool& aFontSetModified)
{
NS_ABORT_IF_FALSE(aRule->GetType() == nsICSSRule::FONT_FACE_RULE,
NS_ABORT_IF_FALSE(aRule->GetType() == mozilla::css::Rule::FONT_FACE_RULE,
"InsertRule passed a non-fontface CSS rule");
// set up family name

View File

@ -1,112 +0,0 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is
* Netscape Communications Corporation.
* Portions created by the Initial Developer are Copyright (C) 1999
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* Alternatively, the contents of this file may be used under the terms of
* either of the GNU General Public License Version 2 or later (the "GPL"),
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
/* internal interface for all rule types in a CSS style sheet */
#ifndef nsICSSRule_h
#define nsICSSRule_h
#include "nsIStyleRule.h"
#include "nsIDOMCSSRule.h"
class nsCSSStyleSheet;
class nsAString;
template<class T> struct already_AddRefed;
class nsIStyleSheet;
namespace mozilla {
namespace css {
class GroupRule;
}
}
// IID for the nsICSSRule interface
#define NS_ICSS_RULE_IID \
{ 0x471d733e, 0xc138, 0x4a50, \
{ 0x9e, 0x1a, 0xd1, 0x3c, 0xbb, 0x65, 0xb5, 0x26 } }
// inheriting from nsIStyleRule is only for style rules, not other rule types
class nsICSSRule : public nsIStyleRule {
public:
NS_DECLARE_STATIC_IID_ACCESSOR(NS_ICSS_RULE_IID)
// The constants in this list must maintain the following invariants:
// If a rule of type N must appear before a rule of type M in stylesheets
// then N < M
// Note that nsCSSStyleSheet::RebuildChildList assumes that no other kinds of
// rules can come between two rules of type IMPORT_RULE.
enum {
UNKNOWN_RULE = 0,
CHARSET_RULE,
IMPORT_RULE,
NAMESPACE_RULE,
STYLE_RULE,
MEDIA_RULE,
FONT_FACE_RULE,
PAGE_RULE,
#ifdef MOZ_CSS_ANIMATIONS
KEYFRAME_RULE,
KEYFRAMES_RULE,
#endif
DOCUMENT_RULE
};
virtual PRInt32 GetType() const = 0;
virtual nsIStyleSheet* GetStyleSheet() const = 0;
virtual void SetStyleSheet(nsCSSStyleSheet* aSheet) = 0;
virtual void SetParentRule(mozilla::css::GroupRule* aRule) = 0;
/**
* Clones |this|. Never returns NULL.
*/
virtual already_AddRefed<nsICSSRule> 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).
nsresult GetDOMRule(nsIDOMCSSRule** aDOMRule)
{
nsresult rv;
NS_IF_ADDREF(*aDOMRule = GetDOMRuleWeak(&rv));
return rv;
}
virtual nsIDOMCSSRule* GetDOMRuleWeak(nsresult* aResult) = 0;
};
NS_DEFINE_STATIC_IID_ACCESSOR(nsICSSRule, NS_ICSS_RULE_IID)
#endif /* nsICSSRule_h */