bao-servo-script 0.5.0

A component of the servo web-engine.
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at https://mozilla.org/MPL/2.0/. */

#![cfg_attr(crown, feature(register_tool))]
#![deny(unsafe_code)]
#![doc = "The script crate contains all matters DOM."]
// Register the linter `crown`, which is the Servo-specific linter for the script crate.
#![cfg_attr(crown, register_tool(crown))]

// These are used a lot so let's keep them for now
#[macro_use]
extern crate js;
#[macro_use]
extern crate jstraceable_derive;
#[macro_use]
extern crate log;
#[macro_use]
extern crate malloc_size_of_derive;
#[macro_use]
extern crate stylo_atoms;

mod animations;
mod css;
#[macro_use]
mod tasks;
// Bao embedder-callback API (vendor patch) lives on the upstream ScriptThread
// in event_loop; re-exported here so `servo` crate / bao embedders can reach it.
pub use event_loop::script_thread::{register_embedder_callback, register_worker_scope_callback};
mod body;
pub(crate) mod conversions;
mod devtools;
#[macro_use]
mod dom;
pub(crate) use dom::canvas_context;
mod event_loop;
pub(crate) mod fetch;
pub(crate) mod indexeddb;
mod init;
mod layout_image;
mod url;

pub(crate) mod iframe_collection;
pub(crate) mod image_animation;
pub mod layout_dom;
pub(crate) mod messaging;
mod microtask;
pub(crate) mod mime;
mod mime_multipart;
pub(crate) mod modules;
mod navigation;
mod network_listener;
mod realms;
mod routed_promise;
pub(crate) mod script_runtime;
pub(crate) mod serviceworker_manager;
mod stylesheet_loader;
mod stylesheet_set;
mod svg_font;
pub mod test;
mod timers;
mod webdriver_handlers;
mod window_named_properties;
mod xpath;

mod unminify;

mod drag_data_store;
mod links;

pub use event_loop::script_thread::ScriptThread;
pub use init::init;
pub(crate) use script_bindings::DomTypes;
pub(crate) use script_bindings::reflector::{AssociatedMemory, DomObject, MutDomObject, Reflector};
pub use script_runtime::JSEngineSetup;
pub use serviceworker_manager::ServiceWorkerManager;

pub(crate) use crate::dom::bindings::codegen::DomTypeHolder::DomTypeHolder;
// These trait exports are public, because they are used in the DOM bindings.
// Since they are used in derive macros,
// it is useful that they are accessible at the root of the crate.
pub(crate) use crate::dom::bindings::inheritance::HasParent;
pub(crate) use crate::dom::bindings::trace::{CustomTraceable, JSTraceable};