mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1016063. Don't include the fake classnames XUL tree pseudo-elements have when calculating style rule specificity. r=heycam
This commit is contained in:
parent
59db282a5f
commit
d4d7efbc2b
@ -473,10 +473,19 @@ int32_t nsCSSSelector::CalcWeightWithoutNegations() const
|
||||
{
|
||||
int32_t weight = 0;
|
||||
|
||||
MOZ_ASSERT(!IsPseudoElement() ||
|
||||
mPseudoType >= nsCSSPseudoElements::ePseudo_PseudoElementCount ||
|
||||
(!mIDList && !mClassList && !mAttrList),
|
||||
"if pseudo-elements can have ID, class or attribute selectors "
|
||||
#ifdef MOZ_XUL
|
||||
MOZ_ASSERT(!(IsPseudoElement() &&
|
||||
PseudoType() != nsCSSPseudoElements::ePseudo_XULTree &&
|
||||
mClassList),
|
||||
"If non-XUL-tree pseudo-elements can have class selectors "
|
||||
"after them, specificity calculation must be updated");
|
||||
#else
|
||||
MOZ_ASSERT(!(IsPseudoElement() && mClassList),
|
||||
"If pseudo-elements can have class selectors "
|
||||
"after them, specificity calculation must be updated");
|
||||
#endif
|
||||
MOZ_ASSERT(!(IsPseudoElement() && (mIDList || mAttrList)),
|
||||
"If pseudo-elements can have id or attribute selectors "
|
||||
"after them, specificity calculation must be updated");
|
||||
|
||||
if (nullptr != mCasedTag) {
|
||||
@ -488,6 +497,13 @@ int32_t nsCSSSelector::CalcWeightWithoutNegations() const
|
||||
list = list->mNext;
|
||||
}
|
||||
list = mClassList;
|
||||
#ifdef MOZ_XUL
|
||||
// XUL tree pseudo-elements abuse mClassList to store some private
|
||||
// data; ignore that.
|
||||
if (PseudoType() == nsCSSPseudoElements::ePseudo_XULTree) {
|
||||
list = nullptr;
|
||||
}
|
||||
#endif
|
||||
while (nullptr != list) {
|
||||
weight += 0x000100;
|
||||
list = list->mNext;
|
||||
|
Loading…
Reference in New Issue
Block a user