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>
This commit is contained in:
batu_hoang 2025-03-17 17:41:34 +08:00 committed by GitHub
parent f483a3d34b
commit 28c8c1df0c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
44 changed files with 360 additions and 1965 deletions

View file

@ -1,9 +0,0 @@
[function-shadow-container.html]
[Can query named container in shadow]
expected: FAIL
[::part() can not see inner named containers]
expected: FAIL
[::slotted() can see inner named containers]
expected: FAIL

View file

@ -1,33 +0,0 @@
[function-shadow.html]
[@function works inside shadow]
expected: FAIL
[Looking up document-global function]
expected: FAIL
[@function works inside nested shadow]
expected: FAIL
[@function defined in outer shadow is visible]
expected: FAIL
[Combining functions from various scopes]
expected: FAIL
[::part() can not see inner functions]
expected: FAIL
[::slotted() can see inner functions]
expected: FAIL
[:host can see inner functions]
expected: FAIL
[Outer functions can't see inner functions]
expected: FAIL
[Outer functions can't see inner functions (local vars)]
expected: FAIL
[Function with same name in different scopes]
expected: FAIL

View file

@ -1,2 +1,78 @@
[host-has-shadow-tree-element-at-nonsubject-position.html]
expected: ERROR
[Initial color]
expected: FAIL
[Add .descendant to #shadow_child]
expected: FAIL
[Remove .descendant from #shadow_child]
expected: FAIL
[Add .descendant to #shadow_descendant]
expected: FAIL
[Add .ancestor to #shadow_child:has(.descendant)]
expected: FAIL
[Remove .ancestor from #shadow_child:has(.descendant)]
expected: FAIL
[Add .child to #shadow_child:has(.descendant)]
expected: FAIL
[Remove .child from #shadow_child:has(.descendant)]
expected: FAIL
[Remove .descendant from #shadow_descendant]
expected: FAIL
[Add .child to #shadow_child]
expected: FAIL
[Add .grand_child to #shadow_descendant]
expected: FAIL
[Add .host_context to #host]
expected: FAIL
[Add .descendant to #shadow_descendant.grand_child]
expected: FAIL
[Remove .descendant from #shadow_descendant.grand_child]
expected: FAIL
[Remove .grand_child from #shadow_descendant]
expected: FAIL
[Remove .child from #shadow_child]
expected: FAIL
[Add .child to #shadow_descendant]
expected: FAIL
[Remove .child from #shadow_descendant]
expected: FAIL
[Insert #first_child.descendant to shadow root]
expected: FAIL
[Remove #first_child.descendant from shadow root]
expected: FAIL
[Insert #last_child.descendant to shadow root]
expected: FAIL
[Remove #last_child.descendant from shadow root]
expected: FAIL
[Insert #child_in_middle.descendant before #shadow_child]
expected: FAIL
[Remove #child_in_middle.descendant from shadow root]
expected: FAIL
[Insert #grand_child.descendant before #shadow_descendant]
expected: FAIL
[Remove #grand_child.descendant from shadow tree]
expected: FAIL

View file

@ -1,2 +1,48 @@
[host-has-shadow-tree-element-at-subject-position.html]
expected: ERROR
[Add .descendant to #shadow_child]
expected: FAIL
[Add .descendant to #shadow_descendant]
expected: FAIL
[Add .ancestor to #shadow_child:has(.descendant)]
expected: FAIL
[Remove .ancestor from #shadow_child:has(.descendant)]
expected: FAIL
[Add .child to #shadow_child:has(.descendant)]
expected: FAIL
[Remove .child from #shadow_child:has(.descendant)]
expected: FAIL
[Add .child to #shadow_child]
expected: FAIL
[Add .grand_child to #shadow_descendant]
expected: FAIL
[Add .host_context to #host]
expected: FAIL
[Add .descendant to #shadow_descendant.grand_child]
expected: FAIL
[Remove .descendant from #shadow_descendant.grand_child]
expected: FAIL
[Remove .grand_child from #shadow_descendant]
expected: FAIL
[Insert #first_child.descendant to shadow root]
expected: FAIL
[Insert #last_child.descendant to shadow root]
expected: FAIL
[Insert #child_in_middle.descendant before #shadow_child]
expected: FAIL
[Insert #grand_child.descendant before #shadow_descendant]
expected: FAIL