Rename a bunch of style/layout data items

GetLayoutData::get_style_and_layout_data becomes
GetOpaqueStyleAndLayoutData::get_opaque_style_and_layout_data.

GetRawData::get_raw_data becomes GetStyleAndLayoutData::get_style_and_layout_data.

LayoutNode::init_style_and_layout_data becomes
LayoutNode::init_opaque_style_and_layout_data.

LayoutNode::take_style_and_layout_data becomes
LayoutNode::take_opaque_style_and_layout_data.
This commit is contained in:
Anthony Ramine 2020-04-06 12:06:00 +02:00
parent 3df65c02fe
commit e3be136c9b
10 changed files with 105 additions and 95 deletions

View file

@ -1037,13 +1037,16 @@ fn inner_text_collection_steps<'dom>(
};
let element_data = {
&node.get_style_and_layout_data().as_ref().map(|opaque| {
&opaque
.downcast_ref::<StyleAndLayoutData>()
.unwrap()
.style_data
.element_data
})
&node
.get_opaque_style_and_layout_data()
.as_ref()
.map(|opaque| {
&opaque
.downcast_ref::<StyleAndLayoutData>()
.unwrap()
.style_data
.element_data
})
};
if element_data.is_none() {

View file

@ -9,7 +9,7 @@ use crate::context::LayoutContext;
use crate::display_list::DisplayListBuildState;
use crate::flow::{Flow, FlowFlags, GetBaseFlow, ImmutableFlowUtils};
use crate::wrapper::ThreadSafeLayoutNodeHelpers;
use crate::wrapper::{GetRawData, LayoutNodeLayoutData};
use crate::wrapper::{GetStyleAndLayoutData, LayoutNodeLayoutData};
use script_layout_interface::wrapper_traits::{LayoutNode, ThreadSafeLayoutNode};
use servo_config::opts;
use style::context::{SharedStyleContext, StyleContext};
@ -73,7 +73,7 @@ where
// flow construction:
// (1) They child doesn't yet have layout data (preorder traversal initializes it).
// (2) The parent element has restyle damage (so the text flow also needs fixup).
node.get_raw_data().is_none() || !parent_data.damage.is_empty()
node.get_style_and_layout_data().is_none() || !parent_data.damage.is_empty()
}
fn shared_context(&self) -> &SharedStyleContext {

View file

@ -32,7 +32,7 @@
use crate::data::{LayoutData, LayoutDataFlags, StyleAndLayoutData};
use atomic_refcell::{AtomicRef, AtomicRefMut};
use script_layout_interface::wrapper_traits::GetLayoutData;
use script_layout_interface::wrapper_traits::GetOpaqueStyleAndLayoutData;
use script_layout_interface::wrapper_traits::{ThreadSafeLayoutElement, ThreadSafeLayoutNode};
use style::dom::{NodeInfo, TNode};
use style::selector_parser::RestyleDamage;
@ -47,14 +47,16 @@ pub trait LayoutNodeLayoutData<'dom> {
impl<'dom, T> LayoutNodeLayoutData<'dom> for T
where
T: GetLayoutData<'dom>,
T: GetOpaqueStyleAndLayoutData<'dom>,
{
fn borrow_layout_data(self) -> Option<AtomicRef<'dom, LayoutData>> {
self.get_raw_data().map(|d| d.layout_data.borrow())
self.get_style_and_layout_data()
.map(|d| d.layout_data.borrow())
}
fn mutate_layout_data(self) -> Option<AtomicRefMut<'dom, LayoutData>> {
self.get_raw_data().map(|d| d.layout_data.borrow_mut())
self.get_style_and_layout_data()
.map(|d| d.layout_data.borrow_mut())
}
fn flow_debug_id(self) -> usize {
@ -63,16 +65,16 @@ where
}
}
pub trait GetRawData<'dom> {
fn get_raw_data(self) -> Option<&'dom StyleAndLayoutData>;
pub trait GetStyleAndLayoutData<'dom> {
fn get_style_and_layout_data(self) -> Option<&'dom StyleAndLayoutData>;
}
impl<'dom, T> GetRawData<'dom> for T
impl<'dom, T> GetStyleAndLayoutData<'dom> for T
where
T: GetLayoutData<'dom>,
T: GetOpaqueStyleAndLayoutData<'dom>,
{
fn get_raw_data(self) -> Option<&'dom StyleAndLayoutData> {
self.get_style_and_layout_data()
fn get_style_and_layout_data(self) -> Option<&'dom StyleAndLayoutData> {
self.get_opaque_style_and_layout_data()
.map(|opaque| opaque.downcast_ref().unwrap())
}
}
@ -143,7 +145,7 @@ where
}
let damage = {
let data = node.get_raw_data().unwrap();
let data = node.get_style_and_layout_data().unwrap();
if !data
.layout_data

View file

@ -8,7 +8,7 @@ use crate::element_data::{LayoutBox, LayoutDataForElement};
use crate::geom::PhysicalSize;
use crate::replaced::{CanvasInfo, CanvasSource, ReplacedContent};
use crate::style_ext::{Display, DisplayGeneratingBox, DisplayInside, DisplayOutside};
use crate::wrapper::GetRawData;
use crate::wrapper::GetStyleAndLayoutData;
use atomic_refcell::AtomicRefMut;
use html5ever::LocalName;
use net_traits::image::base::Image as NetImage;
@ -448,7 +448,7 @@ where
#[allow(unsafe_code)]
fn layout_data_mut(self) -> AtomicRefMut<'dom, LayoutDataForElement> {
self.get_raw_data()
self.get_style_and_layout_data()
.map(|d| d.layout_data.borrow_mut())
.unwrap()
}

View file

@ -3,7 +3,7 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
use crate::context::LayoutContext;
use crate::wrapper::GetRawData;
use crate::wrapper::GetStyleAndLayoutData;
use script_layout_interface::wrapper_traits::LayoutNode;
use style::context::{SharedStyleContext, StyleContext};
use style::data::ElementData;
@ -63,7 +63,7 @@ where
}
fn text_node_needs_traversal(node: E::ConcreteNode, parent_data: &ElementData) -> bool {
node.get_raw_data().is_none() || !parent_data.damage.is_empty()
node.get_style_and_layout_data().is_none() || !parent_data.damage.is_empty()
}
fn shared_context(&self) -> &SharedStyleContext {

View file

@ -5,18 +5,18 @@
#![allow(unsafe_code)]
use crate::data::StyleAndLayoutData;
use script_layout_interface::wrapper_traits::GetLayoutData;
use script_layout_interface::wrapper_traits::GetOpaqueStyleAndLayoutData;
pub trait GetRawData<'dom> {
fn get_raw_data(self) -> Option<&'dom StyleAndLayoutData>;
pub trait GetStyleAndLayoutData<'dom> {
fn get_style_and_layout_data(self) -> Option<&'dom StyleAndLayoutData>;
}
impl<'dom, T> GetRawData<'dom> for T
impl<'dom, T> GetStyleAndLayoutData<'dom> for T
where
T: GetLayoutData<'dom>,
T: GetOpaqueStyleAndLayoutData<'dom>,
{
fn get_raw_data(self) -> Option<&'dom StyleAndLayoutData> {
self.get_style_and_layout_data()
fn get_style_and_layout_data(self) -> Option<&'dom StyleAndLayoutData> {
self.get_opaque_style_and_layout_data()
.map(|opaque| opaque.downcast_ref().unwrap())
}
}

View file

@ -34,7 +34,7 @@ use atomic_refcell::{AtomicRef, AtomicRefMut};
use gfx_traits::ByteIndex;
use html5ever::{LocalName, Namespace};
use layout::data::StyleAndLayoutData;
use layout::wrapper::GetRawData;
use layout::wrapper::GetStyleAndLayoutData;
use msg::constellation_msg::{BrowsingContextId, PipelineId};
use net_traits::image::base::{Image, ImageMetadata};
use range::Range;
@ -50,7 +50,7 @@ use script::layout_exports::{
LayoutDom, LayoutElementHelpers, LayoutNodeHelpers, LayoutShadowRootHelpers,
};
use script_layout_interface::wrapper_traits::{
DangerousThreadSafeLayoutNode, GetLayoutData, LayoutNode,
DangerousThreadSafeLayoutNode, GetOpaqueStyleAndLayoutData, LayoutNode,
};
use script_layout_interface::wrapper_traits::{
PseudoElementType, ThreadSafeLayoutElement, ThreadSafeLayoutNode,
@ -268,18 +268,18 @@ impl<'ln> LayoutNode<'ln> for ServoLayoutNode<'ln> {
}
unsafe fn initialize_data(&self) {
if self.get_raw_data().is_none() {
if self.get_style_and_layout_data().is_none() {
let opaque = OpaqueStyleAndLayoutData::new(StyleAndLayoutData::new());
self.init_style_and_layout_data(opaque);
self.init_opaque_style_and_layout_data(opaque);
};
}
unsafe fn init_style_and_layout_data(&self, data: OpaqueStyleAndLayoutData) {
self.get_jsmanaged().init_style_and_layout_data(data);
unsafe fn init_opaque_style_and_layout_data(&self, data: OpaqueStyleAndLayoutData) {
self.get_jsmanaged().init_opaque_style_and_layout_data(data);
}
unsafe fn take_style_and_layout_data(&self) -> OpaqueStyleAndLayoutData {
self.get_jsmanaged().take_style_and_layout_data()
unsafe fn take_opaque_style_and_layout_data(&self) -> OpaqueStyleAndLayoutData {
self.get_jsmanaged().take_opaque_style_and_layout_data()
}
fn is_connected(&self) -> bool {
@ -287,27 +287,27 @@ impl<'ln> LayoutNode<'ln> for ServoLayoutNode<'ln> {
}
}
impl<'dom> GetLayoutData<'dom> for ServoLayoutNode<'dom> {
fn get_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData> {
self.get_jsmanaged().get_style_and_layout_data()
impl<'dom> GetOpaqueStyleAndLayoutData<'dom> for ServoLayoutNode<'dom> {
fn get_opaque_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData> {
self.get_jsmanaged().get_opaque_style_and_layout_data()
}
}
impl<'dom> GetLayoutData<'dom> for ServoLayoutElement<'dom> {
fn get_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData> {
self.as_node().get_style_and_layout_data()
impl<'dom> GetOpaqueStyleAndLayoutData<'dom> for ServoLayoutElement<'dom> {
fn get_opaque_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData> {
self.as_node().get_opaque_style_and_layout_data()
}
}
impl<'dom> GetLayoutData<'dom> for ServoThreadSafeLayoutNode<'dom> {
fn get_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData> {
self.node.get_style_and_layout_data()
impl<'dom> GetOpaqueStyleAndLayoutData<'dom> for ServoThreadSafeLayoutNode<'dom> {
fn get_opaque_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData> {
self.node.get_opaque_style_and_layout_data()
}
}
impl<'dom> GetLayoutData<'dom> for ServoThreadSafeLayoutElement<'dom> {
fn get_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData> {
self.element.as_node().get_style_and_layout_data()
impl<'dom> GetOpaqueStyleAndLayoutData<'dom> for ServoThreadSafeLayoutElement<'dom> {
fn get_opaque_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData> {
self.element.as_node().get_opaque_style_and_layout_data()
}
}
@ -536,8 +536,8 @@ impl<'le> TElement for ServoLayoutElement<'le> {
}
unsafe fn clear_data(&self) {
if self.get_raw_data().is_some() {
drop(self.as_node().take_style_and_layout_data());
if self.get_style_and_layout_data().is_some() {
drop(self.as_node().take_opaque_style_and_layout_data());
}
}
@ -695,7 +695,7 @@ impl<'le> ServoLayoutElement<'le> {
}
fn get_style_data(&self) -> Option<&StyleData> {
self.get_style_and_layout_data().map(|opaque| {
self.get_opaque_style_and_layout_data().map(|opaque| {
&opaque
.downcast_ref::<StyleAndLayoutData>()
.unwrap()
@ -1045,8 +1045,8 @@ impl<'ln> ThreadSafeLayoutNode<'ln> for ServoThreadSafeLayoutNode<'ln> {
})
}
fn get_style_and_layout_data(self) -> Option<&'ln OpaqueStyleAndLayoutData> {
self.node.get_style_and_layout_data()
fn get_opaque_style_and_layout_data(self) -> Option<&'ln OpaqueStyleAndLayoutData> {
self.node.get_opaque_style_and_layout_data()
}
fn is_ignorable_whitespace(&self, context: &SharedStyleContext) -> bool {

View file

@ -34,7 +34,7 @@ use atomic_refcell::{AtomicRef, AtomicRefMut};
use gfx_traits::ByteIndex;
use html5ever::{LocalName, Namespace};
use layout::data::StyleAndLayoutData;
use layout::wrapper::GetRawData;
use layout::wrapper::GetStyleAndLayoutData;
use msg::constellation_msg::{BrowsingContextId, PipelineId};
use net_traits::image::base::{Image, ImageMetadata};
use range::Range;
@ -50,7 +50,7 @@ use script::layout_exports::{
LayoutDom, LayoutElementHelpers, LayoutNodeHelpers, LayoutShadowRootHelpers,
};
use script_layout_interface::wrapper_traits::{
DangerousThreadSafeLayoutNode, GetLayoutData, LayoutNode,
DangerousThreadSafeLayoutNode, GetOpaqueStyleAndLayoutData, LayoutNode,
};
use script_layout_interface::wrapper_traits::{
PseudoElementType, ThreadSafeLayoutElement, ThreadSafeLayoutNode,
@ -275,18 +275,18 @@ impl<'ln> LayoutNode<'ln> for ServoLayoutNode<'ln> {
}
unsafe fn initialize_data(&self) {
if self.get_raw_data().is_none() {
if self.get_style_and_layout_data().is_none() {
let opaque = OpaqueStyleAndLayoutData::new(StyleAndLayoutData::new());
self.init_style_and_layout_data(opaque);
self.init_opaque_style_and_layout_data(opaque);
};
}
unsafe fn init_style_and_layout_data(&self, data: OpaqueStyleAndLayoutData) {
self.get_jsmanaged().init_style_and_layout_data(data);
unsafe fn init_opaque_style_and_layout_data(&self, data: OpaqueStyleAndLayoutData) {
self.get_jsmanaged().init_opaque_style_and_layout_data(data);
}
unsafe fn take_style_and_layout_data(&self) -> OpaqueStyleAndLayoutData {
self.get_jsmanaged().take_style_and_layout_data()
unsafe fn take_opaque_style_and_layout_data(&self) -> OpaqueStyleAndLayoutData {
self.get_jsmanaged().take_opaque_style_and_layout_data()
}
fn is_connected(&self) -> bool {
@ -294,27 +294,27 @@ impl<'ln> LayoutNode<'ln> for ServoLayoutNode<'ln> {
}
}
impl<'dom> GetLayoutData<'dom> for ServoLayoutNode<'dom> {
fn get_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData> {
unsafe { self.get_jsmanaged().get_style_and_layout_data() }
impl<'dom> GetOpaqueStyleAndLayoutData<'dom> for ServoLayoutNode<'dom> {
fn get_opaque_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData> {
unsafe { self.get_jsmanaged().get_opaque_style_and_layout_data() }
}
}
impl<'dom> GetLayoutData<'dom> for ServoLayoutElement<'dom> {
fn get_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData> {
self.as_node().get_style_and_layout_data()
impl<'dom> GetOpaqueStyleAndLayoutData<'dom> for ServoLayoutElement<'dom> {
fn get_opaque_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData> {
self.as_node().get_opaque_style_and_layout_data()
}
}
impl<'dom> GetLayoutData<'dom> for ServoThreadSafeLayoutNode<'dom> {
fn get_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData> {
self.node.get_style_and_layout_data()
impl<'dom> GetOpaqueStyleAndLayoutData<'dom> for ServoThreadSafeLayoutNode<'dom> {
fn get_opaque_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData> {
self.node.get_opaque_style_and_layout_data()
}
}
impl<'dom> GetLayoutData<'dom> for ServoThreadSafeLayoutElement<'dom> {
fn get_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData> {
self.element.as_node().get_style_and_layout_data()
impl<'dom> GetOpaqueStyleAndLayoutData<'dom> for ServoThreadSafeLayoutElement<'dom> {
fn get_opaque_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData> {
self.element.as_node().get_opaque_style_and_layout_data()
}
}
@ -544,8 +544,8 @@ impl<'le> TElement for ServoLayoutElement<'le> {
}
unsafe fn clear_data(&self) {
if self.get_raw_data().is_some() {
drop(self.as_node().take_style_and_layout_data());
if self.get_style_and_layout_data().is_some() {
drop(self.as_node().take_opaque_style_and_layout_data());
}
}
@ -703,7 +703,7 @@ impl<'le> ServoLayoutElement<'le> {
}
fn get_style_data(&self) -> Option<&StyleData> {
self.get_style_and_layout_data().map(|opaque| {
self.get_opaque_style_and_layout_data().map(|opaque| {
&opaque
.downcast_ref::<StyleAndLayoutData>()
.unwrap()
@ -1053,8 +1053,8 @@ impl<'ln> ThreadSafeLayoutNode<'ln> for ServoThreadSafeLayoutNode<'ln> {
})
}
fn get_style_and_layout_data(self) -> Option<&'ln OpaqueStyleAndLayoutData> {
self.node.get_style_and_layout_data()
fn get_opaque_style_and_layout_data(self) -> Option<&'ln OpaqueStyleAndLayoutData> {
self.node.get_opaque_style_and_layout_data()
}
fn is_ignorable_whitespace(&self, context: &SharedStyleContext) -> bool {

View file

@ -1282,9 +1282,9 @@ pub trait LayoutNodeHelpers<'dom> {
fn children_count(self) -> u32;
fn get_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData>;
unsafe fn init_style_and_layout_data(self, data: OpaqueStyleAndLayoutData);
unsafe fn take_style_and_layout_data(self) -> OpaqueStyleAndLayoutData;
fn get_opaque_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData>;
unsafe fn init_opaque_style_and_layout_data(self, data: OpaqueStyleAndLayoutData);
unsafe fn take_opaque_style_and_layout_data(self) -> OpaqueStyleAndLayoutData;
fn text_content(self) -> Cow<'dom, str>;
fn selection(self) -> Option<Range<usize>>;
@ -1410,13 +1410,13 @@ impl<'dom> LayoutNodeHelpers<'dom> for LayoutDom<'dom, Node> {
#[inline]
#[allow(unsafe_code)]
fn get_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData> {
fn get_opaque_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData> {
unsafe { (*self.unsafe_get().style_and_layout_data.get()).as_ref() }
}
#[inline]
#[allow(unsafe_code)]
unsafe fn init_style_and_layout_data(self, val: OpaqueStyleAndLayoutData) {
unsafe fn init_opaque_style_and_layout_data(self, val: OpaqueStyleAndLayoutData) {
let data = &mut *self.unsafe_get().style_and_layout_data.get();
debug_assert!(data.is_none());
*data = Some(val);
@ -1424,7 +1424,7 @@ impl<'dom> LayoutNodeHelpers<'dom> for LayoutDom<'dom, Node> {
#[inline]
#[allow(unsafe_code)]
unsafe fn take_style_and_layout_data(self) -> OpaqueStyleAndLayoutData {
unsafe fn take_opaque_style_and_layout_data(self) -> OpaqueStyleAndLayoutData {
(*self.unsafe_get().style_and_layout_data.get())
.take()
.unwrap()

View file

@ -79,13 +79,13 @@ impl PseudoElementType {
}
/// Trait to abstract access to layout data across various data structures.
pub trait GetLayoutData<'dom> {
fn get_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData>;
pub trait GetOpaqueStyleAndLayoutData<'dom> {
fn get_opaque_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData>;
}
/// A wrapper so that layout can access only the methods that it should have access to. Layout must
/// only ever see these and must never see instances of `LayoutDom`.
pub trait LayoutNode<'dom>: Debug + GetLayoutData<'dom> + TNode {
pub trait LayoutNode<'dom>: Debug + GetOpaqueStyleAndLayoutData<'dom> + TNode {
type ConcreteThreadSafeLayoutNode: ThreadSafeLayoutNode<'dom>;
fn to_threadsafe(&self) -> Self::ConcreteThreadSafeLayoutNode;
@ -93,8 +93,8 @@ pub trait LayoutNode<'dom>: Debug + GetLayoutData<'dom> + TNode {
fn type_id(&self) -> LayoutNodeType;
unsafe fn initialize_data(&self);
unsafe fn init_style_and_layout_data(&self, data: OpaqueStyleAndLayoutData);
unsafe fn take_style_and_layout_data(&self) -> OpaqueStyleAndLayoutData;
unsafe fn init_opaque_style_and_layout_data(&self, data: OpaqueStyleAndLayoutData);
unsafe fn take_opaque_style_and_layout_data(&self) -> OpaqueStyleAndLayoutData;
fn rev_children(self) -> LayoutIterator<ReverseChildrenIterator<Self>> {
LayoutIterator(ReverseChildrenIterator {
@ -160,7 +160,7 @@ where
/// A thread-safe version of `LayoutNode`, used during flow construction. This type of layout
/// node does not allow any parents or siblings of nodes to be accessed, to avoid races.
pub trait ThreadSafeLayoutNode<'dom>:
Clone + Copy + Debug + GetLayoutData<'dom> + NodeInfo + PartialEq + Sized
Clone + Copy + Debug + GetOpaqueStyleAndLayoutData<'dom> + NodeInfo + PartialEq + Sized
{
type ConcreteNode: LayoutNode<'dom, ConcreteThreadSafeLayoutNode = Self>;
type ConcreteElement: TElement;
@ -224,7 +224,7 @@ pub trait ThreadSafeLayoutNode<'dom>:
.map_or(PseudoElementType::Normal, |el| el.get_pseudo_element_type())
}
fn get_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData>;
fn get_opaque_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData>;
fn style(&self, context: &SharedStyleContext) -> Arc<ComputedValues> {
if let Some(el) = self.as_element() {
@ -314,7 +314,12 @@ pub trait DangerousThreadSafeLayoutNode<'dom>: ThreadSafeLayoutNode<'dom> {
}
pub trait ThreadSafeLayoutElement<'dom>:
Clone + Copy + Sized + Debug + ::selectors::Element<Impl = SelectorImpl> + GetLayoutData<'dom>
Clone
+ Copy
+ Sized
+ Debug
+ ::selectors::Element<Impl = SelectorImpl>
+ GetOpaqueStyleAndLayoutData<'dom>
{
type ConcreteThreadSafeLayoutNode: ThreadSafeLayoutNode<
'dom,