mirror of
https://github.com/servo/servo.git
synced 2025-08-06 14:10:11 +01:00
Have CharacterData call children_changed on its parent when data is set.
Have CharacterData.SetData call children_changed on its parent when data is set (if it is a Text node) so that HTMLStyleElement parents can re-parse. Add variant ChildrenMutation::Text for it to use as the mutation. This fixes an issue where an empty <style> element's data is set but the style is not updated. An HTMLStyleElement parent re-parses in its children_changed implementation.
This commit is contained in:
parent
3f2d747689
commit
4142665282
8 changed files with 24 additions and 301 deletions
|
@ -2490,6 +2490,11 @@ pub enum ChildrenMutation<'a> {
|
|||
next: Option<&'a Node>,
|
||||
},
|
||||
ReplaceAll { removed: &'a [&'a Node], added: &'a [&'a Node] },
|
||||
/// Mutation for when a Text node's data is modified.
|
||||
/// This doesn't change the structure of the list, which is what the other
|
||||
/// variants' fields are stored for at the moment, so this can just have no
|
||||
/// fields.
|
||||
ChangeText,
|
||||
}
|
||||
|
||||
impl<'a> ChildrenMutation<'a> {
|
||||
|
@ -2541,6 +2546,9 @@ impl<'a> ChildrenMutation<'a> {
|
|||
}
|
||||
|
||||
/// Get the child that follows the added or removed children.
|
||||
/// Currently only used when this mutation might force us to
|
||||
/// restyle later children (see HAS_SLOW_SELECTOR_LATER_SIBLINGS and
|
||||
/// Element's implementation of VirtualMethods::children_changed).
|
||||
pub fn next_child(&self) -> Option<&Node> {
|
||||
match *self {
|
||||
ChildrenMutation::Append { .. } => None,
|
||||
|
@ -2548,6 +2556,7 @@ impl<'a> ChildrenMutation<'a> {
|
|||
ChildrenMutation::Prepend { next, .. } => Some(next),
|
||||
ChildrenMutation::Replace { next, .. } => next,
|
||||
ChildrenMutation::ReplaceAll { .. } => None,
|
||||
ChildrenMutation::ChangeText => None,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2585,6 +2594,7 @@ impl<'a> ChildrenMutation<'a> {
|
|||
|
||||
ChildrenMutation::Replace { prev: None, next: None, .. } => unreachable!(),
|
||||
ChildrenMutation::ReplaceAll { .. } => None,
|
||||
ChildrenMutation::ChangeText => None,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue