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:
Oriol Brufau 2025-02-05 03:35:58 +01:00 committed by GitHub
parent e2bb772669
commit fdbfecf7dd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
16 changed files with 44 additions and 197 deletions

View file

@ -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] {