Remove :-servo-case-sensitive-type-attr()

No longer needed now that the case-sensitive flag for attributes selectors is
supported.
Update user-agent CSS sheet to use the standard flag.

Fixes #23227
This commit is contained in:
Ian Moody 2019-04-18 13:34:32 +01:00
parent 04c93c511b
commit 8d7fe68ac3
4 changed files with 10 additions and 41 deletions

View file

@ -817,9 +817,6 @@ impl<'le> ::selectors::Element for ServoLayoutElement<'le> {
_ => true,
}
},
NonTSPseudoClass::ServoCaseSensitiveTypeAttr(ref expected_value) => self
.get_attr_enum(&ns!(), &local_name!("type"))
.map_or(false, |attr| attr == expected_value),
NonTSPseudoClass::ReadOnly => !self
.element
.get_state_for_layout()

View file

@ -2889,10 +2889,6 @@ impl<'a> SelectorsElement for DomRoot<Element> {
},
},
NonTSPseudoClass::ServoCaseSensitiveTypeAttr(ref expected_value) => self
.get_attribute(&ns!(), &local_name!("type"))
.map_or(false, |attr| attr.value().eq(expected_value)),
// FIXME(heycam): This is wrong, since extended_filtering accepts
// a string containing commas (separating each language tag in
// a list) but the pseudo-class instead should be parsing and

View file

@ -282,7 +282,6 @@ pub enum NonTSPseudoClass {
ReadWrite,
ReadOnly,
ServoNonZeroBorder,
ServoCaseSensitiveTypeAttr(Atom),
Target,
Visited,
}
@ -302,18 +301,10 @@ impl ToCss for NonTSPseudoClass {
W: fmt::Write,
{
use self::NonTSPseudoClass::*;
match *self {
Lang(ref lang) => {
dest.write_str(":lang(")?;
serialize_identifier(lang, dest)?;
return dest.write_str(")");
},
ServoCaseSensitiveTypeAttr(ref value) => {
dest.write_str(":-servo-case-sensitive-type-attr(")?;
serialize_identifier(value, dest)?;
return dest.write_str(")");
},
_ => {},
if let Lang(ref lang) = *self {
dest.write_str(":lang(")?;
serialize_identifier(lang, dest)?;
return dest.write_str(")");
}
dest.write_str(match *self {
@ -333,7 +324,7 @@ impl ToCss for NonTSPseudoClass {
ServoNonZeroBorder => ":-servo-nonzero-border",
Target => ":target",
Visited => ":visited",
Lang(_) | ServoCaseSensitiveTypeAttr(_) => unreachable!(),
Lang(_) => unreachable!(),
})
}
}
@ -367,12 +358,7 @@ impl NonTSPseudoClass {
PlaceholderShown => ElementState::IN_PLACEHOLDER_SHOWN_STATE,
Target => ElementState::IN_TARGET_STATE,
AnyLink |
Lang(_) |
Link |
Visited |
ServoNonZeroBorder |
ServoCaseSensitiveTypeAttr(_) => ElementState::empty(),
AnyLink | Lang(_) | Link | Visited | ServoNonZeroBorder => ElementState::empty(),
}
}
@ -464,12 +450,6 @@ impl<'a, 'i> ::selectors::Parser<'i> for SelectorParser<'a> {
"lang" => {
Lang(parser.expect_ident_or_string()?.as_ref().into())
}
"-servo-case-sensitive-type-attr" => {
if !self.in_user_agent_stylesheet() {
return Err(parser.new_custom_error(SelectorParseErrorKind::UnexpectedIdent(name.clone())));
}
ServoCaseSensitiveTypeAttr(Atom::from(parser.expect_ident()?.as_ref()))
}
_ => return Err(parser.new_custom_error(SelectorParseErrorKind::UnexpectedIdent(name.clone())))
};

View file

@ -19,14 +19,10 @@ br[clear=all i], br[clear=both i] { clear: both; }
ol[type="1"], li[type="1"] { list-style-type: decimal; }
ol:-servo-case-sensitive-type-attr(a),
li:-servo-case-sensitive-type-attr(a) { list-style-type: lower-alpha; }
ol:-servo-case-sensitive-type-attr(A),
li:-servo-case-sensitive-type-attr(A) { list-style-type: upper-alpha; }
ol:-servo-case-sensitive-type-attr(i),
li:-servo-case-sensitive-type-attr(i) { list-style-type: lower-roman; }
ol:-servo-case-sensitive-type-attr(I),
li:-servo-case-sensitive-type-attr(I) { list-style-type: upper-roman; }
ol[type=a s], li[type=a s] { list-style-type: lower-alpha; }
ol[type=A s], li[type=A s] { list-style-type: upper-alpha; }
ol[type=i s], li[type=i s] { list-style-type: lower-roman; }
ol[type=I s], li[type=I s] { list-style-type: upper-roman; }
ul[type=none i], li[type=none i] { list-style-type: none; }
ul[type=disc i], li[type=disc i] { list-style-type: disc; }
ul[type=circle i], li[type=circle i] { list-style-type: circle; }