1#![cfg_attr(crown, feature(register_tool))]
6#![deny(unsafe_code)]
7#![doc = "The script crate contains all matters DOM."]
8#![cfg_attr(crown, register_tool(crown))]
10
11#[macro_use]
13extern crate js;
14#[macro_use]
15extern crate jstraceable_derive;
16#[macro_use]
17extern crate log;
18#[macro_use]
19extern crate malloc_size_of_derive;
20#[macro_use]
21extern crate stylo_atoms;
22
23mod animations;
24mod css;
25mod script_window_proxies;
26#[macro_use]
27mod task;
28mod body;
29pub(crate) mod clipboard_provider;
30pub(crate) mod conversions;
31mod devtools;
32pub(crate) mod document_loader;
33#[macro_use]
34mod dom;
35pub(crate) use dom::canvas_context;
36pub(crate) mod fetch;
37pub(crate) mod indexeddb;
38mod init;
39mod layout_image;
40
41pub(crate) mod document_collection;
42pub(crate) mod iframe_collection;
43pub(crate) mod image_animation;
44pub mod layout_dom;
45pub(crate) mod messaging;
46mod microtask;
47pub(crate) mod mime;
48mod module_loading;
49mod navigation;
50mod network_listener;
51mod realms;
52mod routed_promise;
53mod script_module;
54mod script_mutation_observers;
55pub(crate) mod script_runtime;
56#[expect(unsafe_code)]
57pub(crate) mod script_thread;
58pub(crate) mod serviceworker_manager;
59mod stylesheet_loader;
60mod stylesheet_set;
61mod task_manager;
62mod task_queue;
63mod task_source;
64pub mod test;
65pub mod textinput;
66mod timers;
67mod webdriver_handlers;
68mod window_named_properties;
69mod xpath;
70
71mod unminify;
72
73mod drag_data_store;
74mod links;
75
76pub use init::init;
77pub(crate) use script_bindings::DomTypes;
78pub use script_runtime::JSEngineSetup;
79pub use script_thread::ScriptThread;
80pub use serviceworker_manager::ServiceWorkerManager;
81
82pub(crate) use crate::dom::bindings::codegen::DomTypeHolder::DomTypeHolder;
83pub(crate) use crate::dom::bindings::inheritance::HasParent;
87pub(crate) use crate::dom::bindings::reflector::{
88 AssociatedMemory, DomObject, MutDomObject, Reflector,
89};
90pub(crate) use crate::dom::bindings::trace::{CustomTraceable, JSTraceable};