Move PendingRestyle to the style_layout_interface crate

This commit is contained in:
Anthony Ramine 2020-03-27 15:16:57 +01:00
parent 04af32128c
commit df0118dd10
6 changed files with 34 additions and 30 deletions

View file

@ -39,7 +39,6 @@ use msg::constellation_msg::{BrowsingContextId, PipelineId};
use net_traits::image::base::{Image, ImageMetadata}; use net_traits::image::base::{Image, ImageMetadata};
use range::Range; use range::Range;
use script::layout_exports::NodeFlags; use script::layout_exports::NodeFlags;
use script::layout_exports::PendingRestyle;
use script::layout_exports::ShadowRoot; use script::layout_exports::ShadowRoot;
use script::layout_exports::{ use script::layout_exports::{
CharacterDataTypeId, DocumentFragmentTypeId, ElementTypeId, HTMLElementTypeId, NodeTypeId, CharacterDataTypeId, DocumentFragmentTypeId, ElementTypeId, HTMLElementTypeId, NodeTypeId,
@ -51,6 +50,7 @@ use script::layout_exports::{
LayoutDom, LayoutElementHelpers, LayoutNodeHelpers, LayoutShadowRootHelpers, LayoutDom, LayoutElementHelpers, LayoutNodeHelpers, LayoutShadowRootHelpers,
RawLayoutElementHelpers, RawLayoutElementHelpers,
}; };
use script_layout_interface::message::PendingRestyle;
use script_layout_interface::wrapper_traits::{ use script_layout_interface::wrapper_traits::{
DangerousThreadSafeLayoutNode, GetLayoutData, LayoutNode, DangerousThreadSafeLayoutNode, GetLayoutData, LayoutNode,
}; };

View file

@ -39,7 +39,6 @@ use msg::constellation_msg::{BrowsingContextId, PipelineId};
use net_traits::image::base::{Image, ImageMetadata}; use net_traits::image::base::{Image, ImageMetadata};
use range::Range; use range::Range;
use script::layout_exports::NodeFlags; use script::layout_exports::NodeFlags;
use script::layout_exports::PendingRestyle;
use script::layout_exports::ShadowRoot; use script::layout_exports::ShadowRoot;
use script::layout_exports::{ use script::layout_exports::{
CharacterDataTypeId, DocumentFragmentTypeId, ElementTypeId, HTMLElementTypeId, NodeTypeId, CharacterDataTypeId, DocumentFragmentTypeId, ElementTypeId, HTMLElementTypeId, NodeTypeId,
@ -51,6 +50,7 @@ use script::layout_exports::{
LayoutDom, LayoutElementHelpers, LayoutNodeHelpers, LayoutShadowRootHelpers, LayoutDom, LayoutElementHelpers, LayoutNodeHelpers, LayoutShadowRootHelpers,
RawLayoutElementHelpers, RawLayoutElementHelpers,
}; };
use script_layout_interface::message::PendingRestyle;
use script_layout_interface::wrapper_traits::{ use script_layout_interface::wrapper_traits::{
DangerousThreadSafeLayoutNode, GetLayoutData, LayoutNode, DangerousThreadSafeLayoutNode, GetLayoutData, LayoutNode,
}; };

View file

@ -36,7 +36,6 @@ use crate::dom::bindings::reflector::{DomObject, Reflector};
use crate::dom::bindings::root::{Dom, DomRoot}; use crate::dom::bindings::root::{Dom, DomRoot};
use crate::dom::bindings::str::{DOMString, USVString}; use crate::dom::bindings::str::{DOMString, USVString};
use crate::dom::bindings::utils::WindowProxyHandler; use crate::dom::bindings::utils::WindowProxyHandler;
use crate::dom::document::PendingRestyle;
use crate::dom::gpubuffer::GPUBufferState; use crate::dom::gpubuffer::GPUBufferState;
use crate::dom::htmlimageelement::SourceSet; use crate::dom::htmlimageelement::SourceSet;
use crate::dom::htmlmediaelement::{HTMLMediaElementFetchContext, MediaFrameRenderer}; use crate::dom::htmlmediaelement::{HTMLMediaElementFetchContext, MediaFrameRenderer};
@ -96,6 +95,7 @@ use net_traits::storage_thread::StorageType;
use net_traits::{Metadata, NetworkError, ReferrerPolicy, ResourceFetchTiming, ResourceThreads}; use net_traits::{Metadata, NetworkError, ReferrerPolicy, ResourceFetchTiming, ResourceThreads};
use profile_traits::mem::ProfilerChan as MemProfilerChan; use profile_traits::mem::ProfilerChan as MemProfilerChan;
use profile_traits::time::ProfilerChan as TimeProfilerChan; use profile_traits::time::ProfilerChan as TimeProfilerChan;
use script_layout_interface::message::PendingRestyle;
use script_layout_interface::rpc::LayoutRPC; use script_layout_interface::rpc::LayoutRPC;
use script_layout_interface::OpaqueStyleAndLayoutData; use script_layout_interface::OpaqueStyleAndLayoutData;
use script_traits::serializable::BlobImpl; use script_traits::serializable::BlobImpl;

View file

@ -133,7 +133,7 @@ use percent_encoding::percent_decode;
use profile_traits::ipc as profile_ipc; use profile_traits::ipc as profile_ipc;
use profile_traits::time::{TimerMetadata, TimerMetadataFrameType, TimerMetadataReflowType}; use profile_traits::time::{TimerMetadata, TimerMetadataFrameType, TimerMetadataReflowType};
use ref_slice::ref_slice; use ref_slice::ref_slice;
use script_layout_interface::message::{Msg, ReflowGoal}; use script_layout_interface::message::{Msg, PendingRestyle, ReflowGoal};
use script_traits::{AnimationState, DocumentActivity, MouseButton, MouseEventType}; use script_traits::{AnimationState, DocumentActivity, MouseButton, MouseEventType};
use script_traits::{ use script_traits::{
MsDuration, ScriptMsg, TouchEventType, TouchId, UntrustedNodeAddress, WheelDelta, MsDuration, ScriptMsg, TouchEventType, TouchId, UntrustedNodeAddress, WheelDelta,
@ -157,7 +157,7 @@ use style::attr::AttrValue;
use style::context::QuirksMode; use style::context::QuirksMode;
use style::invalidation::element::restyle_hints::RestyleHint; use style::invalidation::element::restyle_hints::RestyleHint;
use style::media_queries::{Device, MediaType}; use style::media_queries::{Device, MediaType};
use style::selector_parser::{RestyleDamage, Snapshot}; use style::selector_parser::Snapshot;
use style::shared_lock::SharedRwLock as StyleSharedRwLock; use style::shared_lock::SharedRwLock as StyleSharedRwLock;
use style::str::{split_html_space_chars, str_join}; use style::str::{split_html_space_chars, str_join};
use style::stylesheet_set::DocumentStylesheetSet; use style::stylesheet_set::DocumentStylesheetSet;
@ -201,29 +201,6 @@ pub enum IsHTMLDocument {
NonHTMLDocument, NonHTMLDocument,
} }
#[derive(Debug, MallocSizeOf)]
pub struct PendingRestyle {
/// If this element had a state or attribute change since the last restyle, track
/// the original condition of the element.
pub snapshot: Option<Snapshot>,
/// Any explicit restyles hints that have been accumulated for this element.
pub hint: RestyleHint,
/// Any explicit restyles damage that have been accumulated for this element.
pub damage: RestyleDamage,
}
impl PendingRestyle {
pub fn new() -> Self {
PendingRestyle {
snapshot: None,
hint: RestyleHint::empty(),
damage: RestyleDamage::empty(),
}
}
}
/// <https://dom.spec.whatwg.org/#document> /// <https://dom.spec.whatwg.org/#document>
#[dom_struct] #[dom_struct]
pub struct Document { pub struct Document {

View file

@ -130,7 +130,7 @@ pub mod layout_exports {
pub use crate::dom::bindings::inheritance::{HTMLElementTypeId, NodeTypeId, TextTypeId}; pub use crate::dom::bindings::inheritance::{HTMLElementTypeId, NodeTypeId, TextTypeId};
pub use crate::dom::bindings::root::LayoutDom; pub use crate::dom::bindings::root::LayoutDom;
pub use crate::dom::characterdata::LayoutCharacterDataHelpers; pub use crate::dom::characterdata::LayoutCharacterDataHelpers;
pub use crate::dom::document::{Document, LayoutDocumentHelpers, PendingRestyle}; pub use crate::dom::document::{Document, LayoutDocumentHelpers};
pub use crate::dom::element::{Element, LayoutElementHelpers, RawLayoutElementHelpers}; pub use crate::dom::element::{Element, LayoutElementHelpers, RawLayoutElementHelpers};
pub use crate::dom::node::NodeFlags; pub use crate::dom::node::NodeFlags;
pub use crate::dom::node::{LayoutNodeHelpers, Node}; pub use crate::dom::node::{LayoutNodeHelpers, Node};

View file

@ -23,8 +23,9 @@ use std::sync::atomic::AtomicBool;
use std::sync::Arc; use std::sync::Arc;
use style::context::QuirksMode; use style::context::QuirksMode;
use style::dom::OpaqueNode; use style::dom::OpaqueNode;
use style::invalidation::element::restyle_hints::RestyleHint;
use style::properties::PropertyId; use style::properties::PropertyId;
use style::selector_parser::PseudoElement; use style::selector_parser::{PseudoElement, RestyleDamage, Snapshot};
use style::stylesheets::Stylesheet; use style::stylesheets::Stylesheet;
/// Asynchronous messages that script can send to layout. /// Asynchronous messages that script can send to layout.
@ -234,3 +235,29 @@ pub struct LayoutThreadInit {
pub layout_is_busy: Arc<AtomicBool>, pub layout_is_busy: Arc<AtomicBool>,
pub window_size: WindowSizeData, pub window_size: WindowSizeData,
} }
/// A pending restyle.
#[derive(Debug, MallocSizeOf)]
pub struct PendingRestyle {
/// If this element had a state or attribute change since the last restyle, track
/// the original condition of the element.
pub snapshot: Option<Snapshot>,
/// Any explicit restyles hints that have been accumulated for this element.
pub hint: RestyleHint,
/// Any explicit restyles damage that have been accumulated for this element.
pub damage: RestyleDamage,
}
impl PendingRestyle {
/// Creates a new empty pending restyle.
#[inline]
pub fn new() -> Self {
PendingRestyle {
snapshot: None,
hint: RestyleHint::empty(),
damage: RestyleDamage::empty(),
}
}
}