mirror of
https://github.com/servo/servo.git
synced 2025-06-30 12:03:38 +01:00
Auto merge of #21946 - emilio:remove-inherits-all, r=nox
style: Stop using PseudoElement::inherits_all. This was done that way just because Servo didn't support the `all` property at the time. We should do it this way and optimize it if it's slow. Though I suspect that most of stuff doesn't actually need to be inherited, my patch at bug 1498943 should make it much faster than what it would otherwise be. <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/21946) <!-- Reviewable:end -->
This commit is contained in:
commit
2bc086762e
2 changed files with 39 additions and 44 deletions
|
@ -221,41 +221,9 @@ impl PseudoElement {
|
|||
}
|
||||
}
|
||||
|
||||
/// For most (but not all) anon-boxes, we inherit all values from the
|
||||
/// parent, this is the hook in the style system to allow this.
|
||||
///
|
||||
/// FIXME(emilio): It's likely that this is broken in a variety of
|
||||
/// situations, and what it really wants is just inherit some reset
|
||||
/// properties... Also, I guess it just could do all: inherit on the
|
||||
/// stylesheet, though chances are that'd be kinda slow if we don't cache
|
||||
/// them...
|
||||
/// To be removed.
|
||||
pub fn inherits_all(&self) -> bool {
|
||||
match *self {
|
||||
PseudoElement::After |
|
||||
PseudoElement::Before |
|
||||
PseudoElement::Selection |
|
||||
PseudoElement::DetailsContent |
|
||||
PseudoElement::DetailsSummary |
|
||||
// Anonymous table flows shouldn't inherit their parents properties in order
|
||||
// to avoid doubling up styles such as transformations.
|
||||
PseudoElement::ServoAnonymousTableCell |
|
||||
PseudoElement::ServoAnonymousTableRow |
|
||||
PseudoElement::ServoText |
|
||||
PseudoElement::ServoInputText => false,
|
||||
|
||||
// For tables, we do want style to inherit, because TableWrapper is
|
||||
// responsible for handling clipping and scrolling, while Table is
|
||||
// responsible for creating stacking contexts.
|
||||
//
|
||||
// StackingContextCollectionFlags makes sure this is processed
|
||||
// properly.
|
||||
PseudoElement::ServoAnonymousTable |
|
||||
PseudoElement::ServoAnonymousTableWrapper |
|
||||
PseudoElement::ServoTableWrapper |
|
||||
PseudoElement::ServoAnonymousBlock |
|
||||
PseudoElement::ServoInlineBlockWrapper |
|
||||
PseudoElement::ServoInlineAbsolute => true,
|
||||
}
|
||||
false
|
||||
}
|
||||
|
||||
/// Covert non-canonical pseudo-element to canonical one, and keep a
|
||||
|
@ -585,7 +553,7 @@ impl<'a, 'i> ::selectors::Parser<'i> for SelectorParser<'a> {
|
|||
}
|
||||
ServoInlineBlockWrapper
|
||||
},
|
||||
"-servo-input-absolute" => {
|
||||
"-servo-inline-absolute" => {
|
||||
if !self.in_user_agent_stylesheet() {
|
||||
return Err(location.new_custom_error(SelectorParseErrorKind::UnexpectedIdent(name.clone())))
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue