mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +01:00
Support ::part
selector (#37307)
This is pretty much just wiring up the necessary stylo methods. Note that the `exportparts` attribute is not yet supported, I'll do that in a followup change Testing: Covered by existing web platform tests. This is the first half of https://github.com/servo/servo/issues/35349 Fixes https://github.com/servo/servo/issues/37325 --------- Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
This commit is contained in:
parent
73ee36be00
commit
0fa3de3937
36 changed files with 119 additions and 348 deletions
|
@ -1583,6 +1583,7 @@ pub(crate) unsafe fn from_untrusted_node_address(candidate: UntrustedNodeAddress
|
|||
pub(crate) trait LayoutNodeHelpers<'dom> {
|
||||
fn type_id_for_layout(self) -> NodeTypeId;
|
||||
|
||||
fn parent_node_ref(self) -> Option<LayoutDom<'dom, Node>>;
|
||||
fn composed_parent_node_ref(self) -> Option<LayoutDom<'dom, Node>>;
|
||||
fn first_child_ref(self) -> Option<LayoutDom<'dom, Node>>;
|
||||
fn last_child_ref(self) -> Option<LayoutDom<'dom, Node>>;
|
||||
|
@ -1645,7 +1646,7 @@ pub(crate) trait LayoutNodeHelpers<'dom> {
|
|||
impl<'dom> LayoutDom<'dom, Node> {
|
||||
#[inline]
|
||||
#[allow(unsafe_code)]
|
||||
fn parent_node_ref(self) -> Option<LayoutDom<'dom, Node>> {
|
||||
pub(crate) fn parent_node_ref(self) -> Option<LayoutDom<'dom, Node>> {
|
||||
unsafe { self.unsafe_get().parent_node.get_inner_as_layout() }
|
||||
}
|
||||
}
|
||||
|
@ -1661,6 +1662,12 @@ impl<'dom> LayoutNodeHelpers<'dom> for LayoutDom<'dom, Node> {
|
|||
(*self).is::<Element>()
|
||||
}
|
||||
|
||||
#[inline]
|
||||
#[allow(unsafe_code)]
|
||||
fn parent_node_ref(self) -> Option<LayoutDom<'dom, Node>> {
|
||||
unsafe { self.unsafe_get().parent_node.get_inner_as_layout() }
|
||||
}
|
||||
|
||||
#[inline]
|
||||
fn composed_parent_node_ref(self) -> Option<LayoutDom<'dom, Node>> {
|
||||
let parent = self.parent_node_ref();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue