mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +01:00
layout: grid template getComputedStyle resolved value (#34885)
* Store taffy detailed info into fragment Signed-off-by: stevennovaryo <steven.novaryo@gmail.com> * Fix info propagation and resolved grid track query Signed-off-by: stevennovaryo <steven.novaryo@gmail.com> * Fix import Signed-off-by: stevennovaryo <steven.novaryo@gmail.com> * Fix tracklist matching logic and type optimization Signed-off-by: stevennovaryo <steven.novaryo@gmail.com> * Run fmt Signed-off-by: stevennovaryo <steven.novaryo@gmail.com> * Update wpt expectations Signed-off-by: stevennovaryo <steven.novaryo@gmail.com> * Optimizing info propagation and minor qol Signed-off-by: stevennovaryo <steven.novaryo@gmail.com> * Run fmt Signed-off-by: stevennovaryo <steven.novaryo@gmail.com> --------- Signed-off-by: stevennovaryo <steven.novaryo@gmail.com>
This commit is contained in:
parent
040e29415b
commit
76fa456a9a
25 changed files with 297 additions and 778 deletions
|
@ -20,6 +20,7 @@ use crate::geom::{
|
|||
AuOrAuto, LengthPercentageOrAuto, PhysicalPoint, PhysicalRect, PhysicalSides, ToLogical,
|
||||
};
|
||||
use crate::style_ext::ComputedValuesExt;
|
||||
use crate::taffy::DetailedTaffyGridInfo;
|
||||
|
||||
/// Describes how a [`BoxFragment`] paints its background.
|
||||
pub(crate) enum BackgroundMode {
|
||||
|
@ -39,6 +40,11 @@ pub(crate) struct ExtraBackground {
|
|||
pub rect: PhysicalRect<Au>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
pub(crate) enum DetailedLayoutInfo {
|
||||
Grid(Box<DetailedTaffyGridInfo>),
|
||||
}
|
||||
|
||||
#[derive(Serialize)]
|
||||
pub(crate) struct BoxFragment {
|
||||
pub base: BaseFragment,
|
||||
|
@ -80,6 +86,10 @@ pub(crate) struct BoxFragment {
|
|||
|
||||
#[serde(skip_serializing)]
|
||||
pub background_mode: BackgroundMode,
|
||||
|
||||
/// Additional information of from layout that could be used by Javascripts and devtools.
|
||||
#[serde(skip_serializing)]
|
||||
pub detailed_layout_info: Option<DetailedLayoutInfo>,
|
||||
}
|
||||
|
||||
impl BoxFragment {
|
||||
|
@ -114,6 +124,7 @@ impl BoxFragment {
|
|||
scrollable_overflow_from_children,
|
||||
resolved_sticky_insets: None,
|
||||
background_mode: BackgroundMode::Normal,
|
||||
detailed_layout_info: None,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -166,6 +177,11 @@ impl BoxFragment {
|
|||
self.background_mode = BackgroundMode::None;
|
||||
}
|
||||
|
||||
pub fn with_detailed_layout_info(mut self, info: Option<DetailedLayoutInfo>) -> Self {
|
||||
self.detailed_layout_info = info;
|
||||
self
|
||||
}
|
||||
|
||||
pub fn scrollable_overflow(&self) -> PhysicalRect<Au> {
|
||||
let physical_padding_rect = self.padding_rect();
|
||||
let content_origin = self.content_rect.origin.to_vector();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue