diff options
author | batu_hoang <55729155+longvatrong111@users.noreply.github.com> | 2025-03-17 17:41:34 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-03-17 09:41:34 +0000 |
commit | 28c8c1df0ca54299f5e5a88c102ef4653e2d4494 (patch) | |
tree | 2347b8c0c272f6049b55893e469d16d5ac5f429a /components/script/dom/shadowroot.rs | |
parent | f483a3d34b9f746d619c793af1f05ccbf0c84119 (diff) | |
download | servo-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.rs | 8 |
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 { |