aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/shadowroot.rs
diff options
context:
space:
mode:
authorbatu_hoang <55729155+longvatrong111@users.noreply.github.com>2025-03-17 17:41:34 +0800
committerGitHub <noreply@github.com>2025-03-17 09:41:34 +0000
commit28c8c1df0ca54299f5e5a88c102ef4653e2d4494 (patch)
tree2347b8c0c272f6049b55893e469d16d5ac5f429a /components/script/dom/shadowroot.rs
parentf483a3d34b9f746d619c793af1f05ccbf0c84119 (diff)
downloadservo-28c8c1df0ca54299f5e5a88c102ef4653e2d4494.tar.gz
servo-28c8c1df0ca54299f5e5a88c102ef4653e2d4494.zip
Implement declarative shadow dom (#34964)
* Implement declarative shadow dom Signed-off-by: batu_hoang <longvatrong111@gmail.com> * Set allowDeclarativeShadowRoots false for innerHTML Signed-off-by: batu_hoang <longvatrong111@gmail.com> * Enable allowDeclarativeShadowRoots for Document Signed-off-by: batu_hoang <longvatrong111@gmail.com> * Expose HTMLTemplateElement to js Signed-off-by: batu_hoang <longvatrong111@gmail.com> * Implemenet setHTMLUnsafe and add more test cases Signed-off-by: batu_hoang <longvatrong111@gmail.com> * Declarative shadow dom: minor updates and expected test result update Signed-off-by: batu_hoang <longvatrong111@gmail.com> * Shadow-dom: add more test cases Signed-off-by: batu_hoang <longvatrong111@gmail.com> * Update comments according to the spec Signed-off-by: batu_hoang <longvatrong111@gmail.com> * Bump html5ever version Signed-off-by: batu_hoang <longvatrong111@gmail.com> --------- Signed-off-by: batu_hoang <longvatrong111@gmail.com>
Diffstat (limited to 'components/script/dom/shadowroot.rs')
-rw-r--r--components/script/dom/shadowroot.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/components/script/dom/shadowroot.rs b/components/script/dom/shadowroot.rs
index 121f2e3de17..39383493873 100644
--- a/components/script/dom/shadowroot.rs
+++ b/components/script/dom/shadowroot.rs
@@ -79,6 +79,9 @@ pub(crate) struct ShadowRoot {
slots: DomRefCell<HashMap<DOMString, Vec<Dom<HTMLSlotElement>>>>,
is_user_agent_widget: bool,
+
+ /// <https://dom.spec.whatwg.org/#shadowroot-declarative>
+ declarative: Cell<bool>,
}
impl ShadowRoot {
@@ -113,6 +116,7 @@ impl ShadowRoot {
available_to_element_internals: Cell::new(false),
slots: Default::default(),
is_user_agent_widget: is_user_agent_widget == IsUserAgentWidget::Yes,
+ declarative: Cell::new(false),
}
}
@@ -276,6 +280,10 @@ impl ShadowRoot {
pub(crate) fn is_user_agent_widget(&self) -> bool {
self.is_user_agent_widget
}
+
+ pub(crate) fn set_declarative(&self, declarative: bool) {
+ self.declarative.set(declarative);
+ }
}
impl ShadowRootMethods<crate::DomTypeHolder> for ShadowRoot {