diff options
Diffstat (limited to 'components/script_layout_interface/lib.rs')
-rw-r--r-- | components/script_layout_interface/lib.rs | 164 |
1 files changed, 0 insertions, 164 deletions
diff --git a/components/script_layout_interface/lib.rs b/components/script_layout_interface/lib.rs deleted file mode 100644 index 0db42229678..00000000000 --- a/components/script_layout_interface/lib.rs +++ /dev/null @@ -1,164 +0,0 @@ -/* 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/. */ - -//! This module contains traits in script used generically in the rest of Servo. -//! The traits are here instead of in script so that these modules won't have -//! to depend on script. - -#![deny(unsafe_code)] - -pub mod message; -pub mod rpc; -pub mod wrapper_traits; - -use std::any::Any; -use std::sync::atomic::AtomicIsize; - -use atomic_refcell::AtomicRefCell; -use canvas_traits::canvas::{CanvasId, CanvasMsg}; -use ipc_channel::ipc::IpcSender; -use libc::c_void; -use malloc_size_of_derive::MallocSizeOf; -use net_traits::image_cache::PendingImageId; -use script_traits::UntrustedNodeAddress; -use servo_url::{ImmutableOrigin, ServoUrl}; -use style::data::ElementData; -use webrender_api::ImageKey; - -#[derive(MallocSizeOf)] -pub struct StyleData { - /// Data that the style system associates with a node. When the - /// style system is being used standalone, this is all that hangs - /// off the node. This must be first to permit the various - /// transmutations between ElementData and PersistentLayoutData. - #[ignore_malloc_size_of = "This probably should not be ignored"] - pub element_data: AtomicRefCell<ElementData>, - - /// Information needed during parallel traversals. - pub parallel: DomParallelInfo, -} - -impl StyleData { - pub fn new() -> Self { - Self { - element_data: AtomicRefCell::new(ElementData::default()), - parallel: DomParallelInfo::new(), - } - } -} - -pub type StyleAndOpaqueLayoutData = StyleAndGenericData<dyn Any + Send + Sync>; - -#[derive(MallocSizeOf)] -pub struct StyleAndGenericData<T> -where - T: ?Sized, -{ - /// The style data. - pub style_data: StyleData, - /// The opaque layout data. - #[ignore_malloc_size_of = "Trait objects are hard"] - pub generic_data: T, -} - -impl StyleAndOpaqueLayoutData { - #[inline] - pub fn new<T>(style_data: StyleData, layout_data: T) -> Box<Self> - where - T: Any + Send + Sync, - { - Box::new(StyleAndGenericData { - style_data, - generic_data: layout_data, - }) - } -} - -/// Information that we need stored in each DOM node. -#[derive(MallocSizeOf)] -pub struct DomParallelInfo { - /// The number of children remaining to process during bottom-up traversal. - pub children_to_process: AtomicIsize, -} - -impl DomParallelInfo { - pub fn new() -> DomParallelInfo { - DomParallelInfo { - children_to_process: AtomicIsize::new(0), - } - } -} - -#[derive(Clone, Copy, Debug, Eq, PartialEq)] -pub enum LayoutNodeType { - Element(LayoutElementType), - Text, -} - -#[derive(Clone, Copy, Debug, Eq, PartialEq)] -pub enum LayoutElementType { - Element, - HTMLBodyElement, - HTMLBRElement, - HTMLCanvasElement, - HTMLHtmlElement, - HTMLIFrameElement, - HTMLImageElement, - HTMLInputElement, - HTMLMediaElement, - HTMLObjectElement, - HTMLParagraphElement, - HTMLTableCellElement, - HTMLTableColElement, - HTMLTableElement, - HTMLTableRowElement, - HTMLTableSectionElement, - HTMLTextAreaElement, - SVGSVGElement, -} - -pub enum HTMLCanvasDataSource { - WebGL(ImageKey), - Image(Option<IpcSender<CanvasMsg>>), - WebGPU(ImageKey), -} - -pub struct HTMLCanvasData { - pub source: HTMLCanvasDataSource, - pub width: u32, - pub height: u32, - pub canvas_id: CanvasId, -} - -pub struct SVGSVGData { - pub width: u32, - pub height: u32, -} - -/// The address of a node known to be valid. These are sent from script to layout. -#[derive(Clone, Copy, Debug, Eq, PartialEq)] -pub struct TrustedNodeAddress(pub *const c_void); - -#[allow(unsafe_code)] -unsafe impl Send for TrustedNodeAddress {} - -/// Whether the pending image needs to be fetched or is waiting on an existing fetch. -pub enum PendingImageState { - Unrequested(ServoUrl), - PendingResponse, -} - -/// The data associated with an image that is not yet present in the image cache. -/// Used by the script thread to hold on to DOM elements that need to be repainted -/// when an image fetch is complete. -pub struct PendingImage { - pub state: PendingImageState, - pub node: UntrustedNodeAddress, - pub id: PendingImageId, - pub origin: ImmutableOrigin, -} - -pub struct HTMLMediaData { - pub current_frame: Option<(ImageKey, i32, i32)>, -} |