Bug 1244049 - Part 1: Define scoped enum for CSSPseudoElement type. r=dbaron

This commit is contained in:
Boris Chiou
2016-02-16 23:07:00 +01:00
parent 75ea718561
commit 16edfa82cd
40 changed files with 263 additions and 258 deletions

View File

@@ -911,7 +911,7 @@ struct RuleCascadeData {
RuleHash mRuleHash;
RuleHash*
mPseudoElementRuleHashes[nsCSSPseudoElements::ePseudo_PseudoElementCount];
mPseudoElementRuleHashes[static_cast<uint8_t>(CSSPseudoElementType::Count)];
nsTArray<nsCSSRuleProcessor::StateSelector> mStateSelectors;
EventStates mSelectorDocumentStates;
PLDHashTable mClassSelectors;
@@ -2644,7 +2644,9 @@ nsCSSRuleProcessor::RulesMatching(PseudoElementRuleProcessorData* aData)
RuleCascadeData* cascade = GetRuleCascade(aData->mPresContext);
if (cascade) {
RuleHash* ruleHash = cascade->mPseudoElementRuleHashes[aData->mPseudoType];
RuleHash* ruleHash =
cascade->mPseudoElementRuleHashes[static_cast<uint8_t>(
aData->mPseudoType)];
if (ruleHash) {
NodeMatchContext nodeContext(EventStates(),
nsCSSRuleProcessor::IsLink(aData->mElement));
@@ -2722,7 +2724,7 @@ nsCSSRuleProcessor::HasStateDependentStyle(ElementDependentRuleProcessorData* aD
"SelectorMatchesTree call");
bool isPseudoElement =
aPseudoType != nsCSSPseudoElements::ePseudo_NotPseudoElement;
aPseudoType != CSSPseudoElementType::NotPseudo;
RuleCascadeData* cascade = GetRuleCascade(aData->mPresContext);
@@ -2806,7 +2808,7 @@ nsCSSRuleProcessor::HasStateDependentStyle(StateRuleProcessorData* aData)
{
return HasStateDependentStyle(aData,
aData->mElement,
nsCSSPseudoElements::ePseudo_NotPseudoElement,
CSSPseudoElementType::NotPseudo,
aData->mStateMask);
}
@@ -2888,7 +2890,7 @@ RestyleHintForSelectorWithAttributeChange(nsRestyleHint aCurrentHint,
sel != aSelector;
sel = sel->mNext) {
MOZ_ASSERT(sel, "aSelector must be reachable from aRightmostSelector");
if (sel->PseudoType() != nsCSSPseudoElements::ePseudo_NotPseudoElement) {
if (sel->PseudoType() != CSSPseudoElementType::NotPseudo) {
return eRestyle_Subtree;
}
}
@@ -3410,10 +3412,11 @@ AddRule(RuleSelectorPair* aRuleInfo, RuleCascadeData* aCascade)
// Build the rule hash.
nsCSSPseudoElements::Type pseudoType = aRuleInfo->mSelector->PseudoType();
if (MOZ_LIKELY(pseudoType == nsCSSPseudoElements::ePseudo_NotPseudoElement)) {
if (MOZ_LIKELY(pseudoType == CSSPseudoElementType::NotPseudo)) {
cascade->mRuleHash.AppendRule(*aRuleInfo);
} else if (pseudoType < nsCSSPseudoElements::ePseudo_PseudoElementCount) {
RuleHash*& ruleHash = cascade->mPseudoElementRuleHashes[pseudoType];
} else if (pseudoType < CSSPseudoElementType::Count) {
RuleHash*& ruleHash =
cascade->mPseudoElementRuleHashes[static_cast<uint8_t>(pseudoType)];
if (!ruleHash) {
ruleHash = new RuleHash(cascade->mQuirksMode);
if (!ruleHash) {
@@ -3426,7 +3429,7 @@ AddRule(RuleSelectorPair* aRuleInfo, RuleCascadeData* aCascade)
NS_ASSERTION(aRuleInfo->mSelector->mNext->mOperator == ':',
"Unexpected mNext combinator");
ruleHash->AppendRule(*aRuleInfo);
} else if (pseudoType == nsCSSPseudoElements::ePseudo_AnonBox) {
} else if (pseudoType == CSSPseudoElementType::AnonBox) {
NS_ASSERTION(!aRuleInfo->mSelector->mCasedTag &&
!aRuleInfo->mSelector->mIDList &&
!aRuleInfo->mSelector->mClassList &&
@@ -3444,7 +3447,7 @@ AddRule(RuleSelectorPair* aRuleInfo, RuleCascadeData* aCascade)
RuleValue(*aRuleInfo, 0, aCascade->mQuirksMode));
} else {
#ifdef MOZ_XUL
NS_ASSERTION(pseudoType == nsCSSPseudoElements::ePseudo_XULTree,
NS_ASSERTION(pseudoType == CSSPseudoElementType::XULTree,
"Unexpected pseudo type");
// Index doesn't matter here, since we'll just be walking these
// rules in order; just pass 0.
@@ -3460,7 +3463,7 @@ AddRule(RuleSelectorPair* aRuleInfo, RuleCascadeData* aCascade)
selector; selector = selector->mNext) {
if (selector->IsPseudoElement()) {
nsCSSPseudoElements::Type pseudo = selector->PseudoType();
if (pseudo >= nsCSSPseudoElements::ePseudo_PseudoElementCount ||
if (pseudo >= CSSPseudoElementType::Count ||
!nsCSSPseudoElements::PseudoElementSupportsUserActionState(pseudo)) {
NS_ASSERTION(!selector->mNegations, "Shouldn't have negations");
// We do store selectors ending with pseudo-elements that allow :hover