mirror of
https://github.com/servo/servo.git
synced 2025-08-05 21:50:18 +01:00
Upgrade Stylo to 2025-02-03 (#35289)
* Upgrade Stylo to 2025-02-03 Signed-off-by: Oriol Brufau <obrufau@igalia.com> * Fixup for https://phabricator.services.mozilla.com/D233218 Signed-off-by: Oriol Brufau <obrufau@igalia.com> * Fixup for https://phabricator.services.mozilla.com/D233758 Signed-off-by: Oriol Brufau <obrufau@igalia.com> * Fixup for https://phabricator.services.mozilla.com/D231255 Signed-off-by: Oriol Brufau <obrufau@igalia.com> * Update test expectations Signed-off-by: Oriol Brufau <obrufau@igalia.com> --------- Signed-off-by: Oriol Brufau <obrufau@igalia.com>
This commit is contained in:
parent
e2bb772669
commit
fdbfecf7dd
16 changed files with 44 additions and 197 deletions
|
@ -33,6 +33,7 @@ use style::selector_parser::{
|
|||
SelectorImpl,
|
||||
};
|
||||
use style::shared_lock::Locked as StyleLocked;
|
||||
use style::stylesheets::scope_rule::ImplicitScopeRoot;
|
||||
use style::values::computed::Display;
|
||||
use style::values::{AtomIdent, AtomString};
|
||||
use style::CaseSensitivityExt;
|
||||
|
@ -498,16 +499,22 @@ impl<'dom> style::dom::TElement for ServoLayoutElement<'dom> {
|
|||
{
|
||||
}
|
||||
|
||||
/// Convert an opaque element back into the element.
|
||||
fn unopaque(opaque: ::selectors::OpaqueElement) -> Self {
|
||||
unsafe {
|
||||
let ptr = opaque.as_const_ptr::<JSObject>();
|
||||
/// Returns the implicit scope root for given sheet index and host.
|
||||
fn implicit_scope_for_sheet_in_shadow_root(
|
||||
opaque_host: ::selectors::OpaqueElement,
|
||||
sheet_index: usize,
|
||||
) -> Option<ImplicitScopeRoot> {
|
||||
// As long as this "unopaqued" element does not escape this function, we're not leaking
|
||||
// potentially-mutable elements from opaque elements.
|
||||
let host = unsafe {
|
||||
let ptr = opaque_host.as_const_ptr::<JSObject>();
|
||||
let untrusted_address = UntrustedNodeAddress::from_id(ptr as usize);
|
||||
let node = Node::from_untrusted_node_address(untrusted_address);
|
||||
let trusted_address = node.to_trusted_node_address();
|
||||
let servo_layout_node = ServoLayoutNode::new(&trusted_address);
|
||||
servo_layout_node.as_element().unwrap()
|
||||
}
|
||||
};
|
||||
host.shadow_root()?.implicit_scope_for_sheet(sheet_index)
|
||||
}
|
||||
|
||||
fn slotted_nodes(&self) -> &[Self::ConcreteNode] {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue