chore: Clean up use of gfx and constellation types (#31981)

This change contains three semi-related clean ups:

1. the `to_webrender()` and `from_webrender()` functions on Pipeline are
   turned into more-idiomatic `From` and `Into` implementations.
2. `combine_id_with_fragment_type` now returns a `u64` as that is what is
   expected for all callers and not a `usize`.
3. The `query_scroll_id` query is removed entirely. The
   `ExternalScrollId` that this queries is easily generated directly
   from the node's opaque id. Querying into layout isn't necessary at
   all.
This commit is contained in:
Martin Robinson 2024-04-09 08:43:48 +02:00 committed by GitHub
parent b79e2a0b65
commit dd9f62adcc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
15 changed files with 62 additions and 119 deletions

View file

@ -46,7 +46,7 @@ use style::properties::PropertyId;
use style::selector_parser::PseudoElement;
use style::stylesheets::Stylesheet;
use style_traits::CSSPixel;
use webrender_api::{ExternalScrollId, ImageKey};
use webrender_api::ImageKey;
pub type GenericLayoutData = dyn Any + Send + Sync;
@ -235,7 +235,6 @@ pub trait Layout {
animations: DocumentAnimationSet,
animation_timeline_value: f64,
) -> Option<ServoArc<Font>>;
fn query_scroll_id(&self, node: TrustedNodeAddress) -> ExternalScrollId;
fn query_scrolling_area(&self, node: Option<OpaqueNode>) -> Rect<i32>;
fn query_text_indext(&self, node: OpaqueNode, point: Point2D<f32>) -> Option<usize>;
}

View file

@ -55,7 +55,6 @@ pub enum QueryMsg {
OffsetParentQuery,
TextIndexQuery,
NodesFromPointQuery,
NodeScrollIdQuery,
ResolvedStyleQuery,
StyleQuery,
ElementInnerTextQuery,
@ -90,7 +89,6 @@ impl ReflowGoal {
QueryMsg::ClientRectQuery |
QueryMsg::ContentBox |
QueryMsg::ContentBoxes |
QueryMsg::NodeScrollIdQuery |
QueryMsg::OffsetParentQuery |
QueryMsg::ResolvedFontStyleQuery |
QueryMsg::ScrollingAreaQuery |
@ -112,7 +110,6 @@ impl ReflowGoal {
QueryMsg::ContentBoxes |
QueryMsg::ClientRectQuery |
QueryMsg::ScrollingAreaQuery |
QueryMsg::NodeScrollIdQuery |
QueryMsg::ResolvedStyleQuery |
QueryMsg::ResolvedFontStyleQuery |
QueryMsg::OffsetParentQuery |

View file

@ -9,7 +9,7 @@ use std::fmt::Debug;
use std::sync::Arc as StdArc;
use atomic_refcell::AtomicRef;
use gfx_traits::{combine_id_with_fragment_type, ByteIndex, FragmentType};
use gfx_traits::{ByteIndex, FragmentType};
use html5ever::{local_name, namespace_url, ns, LocalName, Namespace};
use msg::constellation_msg::{BrowsingContextId, PipelineId};
use net_traits::image::base::{Image, ImageMetadata};
@ -23,7 +23,6 @@ use style::dom::{LayoutIterator, NodeInfo, OpaqueNode, TElement, TNode};
use style::properties::ComputedValues;
use style::selector_parser::{PseudoElement, PseudoElementCascadeType, SelectorImpl};
use style::stylist::RuleInclusion;
use webrender_api::ExternalScrollId;
use crate::{
GenericLayoutData, HTMLCanvasData, HTMLMediaData, LayoutNodeType, SVGSVGData, StyleData,
@ -315,11 +314,6 @@ pub trait ThreadSafeLayoutNode<'dom>: Clone + Copy + Debug + NodeInfo + PartialE
fn fragment_type(&self) -> FragmentType {
self.get_pseudo_element_type().fragment_type()
}
fn generate_scroll_id(&self, pipeline_id: PipelineId) -> ExternalScrollId {
let id = combine_id_with_fragment_type(self.opaque().id(), self.fragment_type());
ExternalScrollId(id as u64, pipeline_id.to_webrender())
}
}
pub trait ThreadSafeLayoutElement<'dom>: