mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Mutation Observer API
This commit is contained in:
parent
fa251ec96b
commit
3ca89204ff
15 changed files with 432 additions and 180 deletions
|
@ -7,6 +7,7 @@
|
|||
use app_units::Au;
|
||||
use devtools_traits::NodeInfo;
|
||||
use document_loader::DocumentLoader;
|
||||
use dom::bindings::cell::DOMRefCell;
|
||||
use dom::bindings::codegen::Bindings::CharacterDataBinding::CharacterDataMethods;
|
||||
use dom::bindings::codegen::Bindings::DocumentBinding::DocumentMethods;
|
||||
use dom::bindings::codegen::Bindings::ElementBinding::ElementMethods;
|
||||
|
@ -46,6 +47,7 @@ use dom::htmllinkelement::HTMLLinkElement;
|
|||
use dom::htmlmetaelement::HTMLMetaElement;
|
||||
use dom::htmlstyleelement::HTMLStyleElement;
|
||||
use dom::htmltextareaelement::{HTMLTextAreaElement, LayoutHTMLTextAreaElementHelpers};
|
||||
use dom::mutationobserver::RegisteredObserver;
|
||||
use dom::nodelist::NodeList;
|
||||
use dom::processinginstruction::ProcessingInstruction;
|
||||
use dom::range::WeakRangeVec;
|
||||
|
@ -72,7 +74,7 @@ use selectors::matching::matches_selector_list;
|
|||
use selectors::parser::SelectorList;
|
||||
use servo_url::ServoUrl;
|
||||
use std::borrow::ToOwned;
|
||||
use std::cell::{Cell, UnsafeCell};
|
||||
use std::cell::{Cell, UnsafeCell, RefMut};
|
||||
use std::cmp::max;
|
||||
use std::default::Default;
|
||||
use std::iter;
|
||||
|
@ -138,6 +140,9 @@ pub struct Node {
|
|||
/// node is finalized.
|
||||
style_and_layout_data: Cell<Option<OpaqueStyleAndLayoutData>>,
|
||||
|
||||
/// Registered observers for this node.
|
||||
mutation_observers: DOMRefCell<Vec<RegisteredObserver>>,
|
||||
|
||||
unique_id: UniqueId,
|
||||
}
|
||||
|
||||
|
@ -363,6 +368,11 @@ impl Node {
|
|||
}
|
||||
}
|
||||
|
||||
/// Return all registered mutation observers for this node.
|
||||
pub fn registered_mutation_observers(&self) -> RefMut<Vec<RegisteredObserver>> {
|
||||
self.mutation_observers.borrow_mut()
|
||||
}
|
||||
|
||||
/// Dumps the subtree rooted at this node, for debugging.
|
||||
pub fn dump(&self) {
|
||||
self.dump_indent(0);
|
||||
|
@ -1411,6 +1421,8 @@ impl Node {
|
|||
|
||||
style_and_layout_data: Cell::new(None),
|
||||
|
||||
mutation_observers: Default::default(),
|
||||
|
||||
unique_id: UniqueId::new(),
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue