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,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