mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
Implement Event propagation across shadow roots (#34884)
* Implement Event.composed flag Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Allow composed events to pass shadow boundaries Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Update WPT expectations Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> --------- Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
This commit is contained in:
parent
aed7e8cefd
commit
1b882f2729
16 changed files with 89 additions and 144 deletions
|
@ -805,11 +805,13 @@ impl EventTarget {
|
|||
}
|
||||
}
|
||||
|
||||
if self.downcast::<ShadowRoot>().is_some() {
|
||||
// FIXME: Handle event composed flag here
|
||||
// We currently assume that events are never composed (so events may never
|
||||
// cross a shadow boundary)
|
||||
return None;
|
||||
if let Some(shadow_root) = self.downcast::<ShadowRoot>() {
|
||||
if event.should_pass_shadow_boundary(shadow_root) {
|
||||
let host = shadow_root.Host();
|
||||
return Some(DomRoot::from_ref(host.upcast::<EventTarget>()));
|
||||
} else {
|
||||
return None;
|
||||
}
|
||||
}
|
||||
|
||||
if let Some(node) = self.downcast::<Node>() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue