aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/element.rs
diff options
context:
space:
mode:
authorSimon Wülker <simon.wuelker@arcor.de>2024-12-07 15:24:18 +0100
committerGitHub <noreply@github.com>2024-12-07 14:24:18 +0000
commit97e9841d47fca9ff576b0af8ec08fdd8421b6915 (patch)
treee82d2269802192139e810a65c087819b0a8cf650 /components/script/dom/element.rs
parent8ebb77ab76d338152249357646dfa26c666290b7 (diff)
downloadservo-97e9841d47fca9ff576b0af8ec08fdd8421b6915.tar.gz
servo-97e9841d47fca9ff576b0af8ec08fdd8421b6915.zip
Implement `ShadowRoot.clonable` attribute (#34514)
* Implement ShadowRoot clonable attribute Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Update WPT expectations Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Update WPT expectations Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * ./mach test-tidy fixes Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * fix clippy warnings Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> --------- Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
Diffstat (limited to 'components/script/dom/element.rs')
-rw-r--r--components/script/dom/element.rs6
1 files changed, 4 insertions, 2 deletions
diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs
index 75f8f4d4b20..594c63bbab6 100644
--- a/components/script/dom/element.rs
+++ b/components/script/dom/element.rs
@@ -507,8 +507,10 @@ impl Element {
/// <https://dom.spec.whatwg.org/#dom-element-attachshadow>
pub fn attach_shadow(
&self,
+ // TODO: remove is_ua_widget argument
is_ua_widget: IsUserAgentWidget,
mode: ShadowRootMode,
+ clonable: bool,
) -> Fallible<DomRoot<ShadowRoot>> {
// Step 1.
if self.namespace != ns!(html) {
@@ -546,7 +548,7 @@ impl Element {
}
// Steps 4, 5 and 6.
- let shadow_root = ShadowRoot::new(self, &self.node.owner_doc(), mode);
+ let shadow_root = ShadowRoot::new(self, &self.node.owner_doc(), mode, clonable);
self.ensure_rare_data().shadow_root = Some(Dom::from_ref(&*shadow_root));
shadow_root
.upcast::<Node>()
@@ -3034,7 +3036,7 @@ impl ElementMethods<crate::DomTypeHolder> for Element {
fn AttachShadow(&self, init: &ShadowRootInit) -> Fallible<DomRoot<ShadowRoot>> {
// Step 1. Run attach a shadow root with this, init["mode"], init["clonable"], init["serializable"],
// init["delegatesFocus"], and init["slotAssignment"].
- let shadow_root = self.attach_shadow(IsUserAgentWidget::No, init.mode)?;
+ let shadow_root = self.attach_shadow(IsUserAgentWidget::No, init.mode, init.clonable)?;
// Step 2. Return this’s shadow root.
Ok(shadow_root)