Skip to content

Commit 1bd8052

Browse files
authored
Move mutation logic into blitz-dom crate (#220)
Signed-off-by: Nico Burns <[email protected]>
1 parent fe26a23 commit 1bd8052

File tree

8 files changed

+695
-666
lines changed

8 files changed

+695
-666
lines changed

packages/blitz-dom/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ woff-rust = ["dep:woff2"]
2222
clipboard = ["dep:arboard"]
2323
accessibility = ["accesskit"]
2424
system_fonts = ["parley/system"]
25+
autofocus = []
2526

2627
[dependencies]
2728
# Blitz dependencies

packages/blitz-dom/src/document.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use crate::node::{ImageData, NodeSpecificData, RasterImageData, Status, TextBrus
44
use crate::stylo_to_cursor_icon::stylo_to_cursor_icon;
55
use crate::traversal::{AncestorTraverser, TreeTraverser};
66
use crate::util::{ImageType, resolve_url};
7-
use crate::{ElementNodeData, Node, NodeData, TextNodeData};
7+
use crate::{DocumentMutator, ElementNodeData, Node, NodeData, TextNodeData};
88
use app_units::Au;
99
use blitz_traits::navigation::{DummyNavigationProvider, NavigationProvider};
1010
use blitz_traits::net::{DummyNetProvider, SharedProvider};
@@ -297,6 +297,10 @@ impl BaseDocument {
297297
.or(self.try_root_element().map(|el| el.id))
298298
}
299299

300+
pub fn mutate<'doc>(&'doc mut self) -> DocumentMutator<'doc> {
301+
DocumentMutator::new(self)
302+
}
303+
300304
/// Find the label's bound input elements:
301305
/// the element id referenced by the "for" attribute of a given label element
302306
/// or the first input element which is nested in the label

packages/blitz-dom/src/lib.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ mod events;
2828
mod form;
2929
/// Integration of taffy and the DOM.
3030
mod layout;
31+
mod mutator;
3132
mod query_selector;
3233
/// Implementations that interact with servo's style engine
3334
mod stylo;
@@ -46,7 +47,8 @@ pub use markup5ever::{
4647
Namespace, NamespaceStaticSet, Prefix, PrefixStaticSet, QualName, local_name, namespace_prefix,
4748
namespace_url, ns,
4849
};
49-
pub use node::{ElementNodeData, Node, NodeData, TextNodeData};
50+
pub use mutator::DocumentMutator;
51+
pub use node::{Attribute, ElementNodeData, Node, NodeData, TextNodeData};
5052
pub use parley::FontContext;
5153
pub use string_cache::Atom;
5254
pub use style::invalidation::element::restyle_hints::RestyleHint;

0 commit comments

Comments
 (0)