mirror of
https://github.com/servo/servo.git
synced 2025-08-12 00:45:33 +01:00
Remove TDocument from the style and layout crates.
The style system never actually does anything with the document. This allows us to remove a bunch of stubbing on the Gecko side and streamline some things on the Servo side in future patches.
This commit is contained in:
parent
b7eb36fa84
commit
dda2928386
6 changed files with 22 additions and 88 deletions
|
@ -14,7 +14,7 @@ use parking_lot::RwLock;
|
|||
use properties::{ComputedValues, PropertyDeclarationBlock};
|
||||
use properties::longhands::display::computed_value as display;
|
||||
use restyle_hints::{RESTYLE_DESCENDANTS, RESTYLE_LATER_SIBLINGS, RESTYLE_SELF, RestyleHint};
|
||||
use selector_impl::{ElementExt, PseudoElement, RestyleDamage, Snapshot};
|
||||
use selector_impl::{ElementExt, PseudoElement, RestyleDamage};
|
||||
use selector_matching::ApplicableDeclarationBlock;
|
||||
use sink::Push;
|
||||
use std::fmt::Debug;
|
||||
|
@ -105,8 +105,7 @@ impl<T, I> Iterator for LayoutIterator<T> where T: Iterator<Item=I>, I: NodeInfo
|
|||
}
|
||||
|
||||
pub trait TNode : Sized + Copy + Clone + NodeInfo {
|
||||
type ConcreteElement: TElement<ConcreteNode = Self, ConcreteDocument = Self::ConcreteDocument>;
|
||||
type ConcreteDocument: TDocument<ConcreteNode = Self, ConcreteElement = Self::ConcreteElement>;
|
||||
type ConcreteElement: TElement<ConcreteNode = Self>;
|
||||
type ConcreteChildrenIterator: Iterator<Item = Self>;
|
||||
|
||||
fn to_unsafe(&self) -> UnsafeNode;
|
||||
|
@ -130,8 +129,6 @@ pub trait TNode : Sized + Copy + Clone + NodeInfo {
|
|||
|
||||
fn as_element(&self) -> Option<Self::ConcreteElement>;
|
||||
|
||||
fn as_document(&self) -> Option<Self::ConcreteDocument>;
|
||||
|
||||
fn needs_dirty_on_viewport_size_changed(&self) -> bool;
|
||||
|
||||
unsafe fn set_dirty_on_viewport_size_changed(&self);
|
||||
|
@ -151,28 +148,13 @@ pub trait TNode : Sized + Copy + Clone + NodeInfo {
|
|||
fn next_sibling(&self) -> Option<Self>;
|
||||
}
|
||||
|
||||
pub trait TDocument : Sized + Copy + Clone {
|
||||
type ConcreteNode: TNode<ConcreteElement = Self::ConcreteElement, ConcreteDocument = Self>;
|
||||
type ConcreteElement: TElement<ConcreteNode = Self::ConcreteNode, ConcreteDocument = Self>;
|
||||
|
||||
fn as_node(&self) -> Self::ConcreteNode;
|
||||
|
||||
fn root_node(&self) -> Option<Self::ConcreteNode>;
|
||||
|
||||
fn drain_modified_elements(&self) -> Vec<(Self::ConcreteElement, Snapshot)>;
|
||||
|
||||
fn needs_paint_from_layout(&self);
|
||||
fn will_paint(&self);
|
||||
}
|
||||
|
||||
pub trait PresentationalHintsSynthetizer {
|
||||
fn synthesize_presentational_hints_for_legacy_attributes<V>(&self, hints: &mut V)
|
||||
where V: Push<ApplicableDeclarationBlock>;
|
||||
}
|
||||
|
||||
pub trait TElement : PartialEq + Debug + Sized + Copy + Clone + ElementExt + PresentationalHintsSynthetizer {
|
||||
type ConcreteNode: TNode<ConcreteElement = Self, ConcreteDocument = Self::ConcreteDocument>;
|
||||
type ConcreteDocument: TDocument<ConcreteNode = Self::ConcreteNode, ConcreteElement = Self>;
|
||||
type ConcreteNode: TNode<ConcreteElement = Self>;
|
||||
|
||||
fn as_node(&self) -> Self::ConcreteNode;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue