mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
style: relax assertions in dom::element when setting selector flags.
Fixes #16409
This commit is contained in:
parent
b514168469
commit
39ab49823b
2 changed files with 10 additions and 1 deletions
|
@ -930,8 +930,17 @@ pub trait MatchMethods : TElement {
|
|||
let self_flags = flags.for_self();
|
||||
if !self_flags.is_empty() {
|
||||
if element == self {
|
||||
// If this is the element we're styling, we have exclusive
|
||||
// access to the element, and thus it's fine inserting them,
|
||||
// even from the worker.
|
||||
unsafe { element.set_selector_flags(self_flags); }
|
||||
} else {
|
||||
// Otherwise, this element is an ancestor of the current element
|
||||
// we're styling, and thus multiple children could write to it
|
||||
// if we did from here.
|
||||
//
|
||||
// Instead, we can read them, and post them if necessary as a
|
||||
// sequential task in order for them to be processed later.
|
||||
if !element.has_selector_flags(self_flags) {
|
||||
let task =
|
||||
SequentialTask::set_selector_flags(element.clone(),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue