-
Notifications
You must be signed in to change notification settings - Fork 2.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add declarative Shadow DOM features #5465
Conversation
This CL cleans up the variations of element::attachShadow(), refactoring the common subset back into attachShadow(). It also replaces the bool delegates_focus and manual_slotting parameters with enum versions that are common across declarative and imperative calls. This CL should not change any functionality. The spec text comes from my two PRs against DOM [1] and HTML [2]. [1] whatwg/dom#858 [2] whatwg/html#5465 Bug: 1042130 Change-Id: I3835b9d344d8005b6854909f287083cd984e832e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2155144 Commit-Queue: Mason Freed <[email protected]> Auto-Submit: Mason Freed <[email protected]> Reviewed-by: Kouhei Ueno <[email protected]> Cr-Commit-Position: refs/heads/master@{#760704}
Ok, I believe this PR is ready for review. This is my first time with a PR of this size against HTML so please let me know what I need to change. All of this PR has now been implemented in Chromium behind the DeclarativeShadowDOM flag, and WPT tests have been written. |
Any comments on this PR? No rush, just bumping it in case people would like to take a look. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It seems this doesn't properly introduce all the new template
attributes and adds them to the various indexes (top of the source
document has instructions). I guess some special care is needed given they seem to be parser-only.
Thanks for the review! I believe I've addressed all of your comments, but let me know if I missed anything. Note that the latest push also includes the addition of |
Just checking in on this PR. Is there anything missing, other than multi-implementer interest? |
f3c293e
to
29cdf7e
Compare
4e2da5b
to
57f9319
Compare
This CL implements most of the suggestions from [1], which effectively block declarative Shadow DOM from being used by any fragment parser entry point, unless an explicit opt-in is toggled. The opt-ins include: - DOMParser.allowDeclarativeShadowDom = true; - HTMLTemplateElement.allowDeclarativeShadowDom = true; - XMLHttpRequest.allowDeclarativeShadowDom = true; - DocumentFragment.allowDeclarativeShadowDom = true; - Document.allowDeclarativeShadowDom = true; // For innerHTML - A new <iframe> sandbox flag: allow-declarative-shadow-dom This mitigates the potential client-side XSS sanitizer bypass detailed in the explainer and at [1]. Assuming these changes are functional, and mitigate the issue, this new behavior will be folded into the spec PRs at [2] and [3]. But given the security implications of the existing code, I'd like to get this landed first. [1] whatwg/dom#912 (comment) [2] whatwg/html#5465 [3] whatwg/dom#892 Bug: 1042130 Change-Id: I088f28f63078a0d26e354a4442494c0132b47ffc
This CL implements most of the suggestions from [1], which effectively block declarative Shadow DOM from being used by any fragment parser entry point, unless an explicit opt-in is toggled. The opt-ins include: - DOMParser.allowDeclarativeShadowDom = true; - HTMLTemplateElement.allowDeclarativeShadowDom = true; - XMLHttpRequest.allowDeclarativeShadowDom = true; - DocumentFragment.allowDeclarativeShadowDom = true; - Document.allowDeclarativeShadowDom = true; // For innerHTML - A new <iframe> sandbox flag: allow-declarative-shadow-dom This mitigates the potential client-side XSS sanitizer bypass detailed in the explainer and at [1]. Assuming these changes are functional, and mitigate the issue, this new behavior will be folded into the spec PRs at [2] and [3]. But given the security implications of the existing code, I'd like to get this landed first. [1] whatwg/dom#912 (comment) [2] whatwg/html#5465 [3] whatwg/dom#892 Bug: 1042130 Change-Id: I088f28f63078a0d26e354a4442494c0132b47ffc
This CL implements most of the suggestions from [1], which effectively block declarative Shadow DOM from being used by any fragment parser entry point, unless an explicit opt-in is toggled. The opt-ins include: - DOMParser.allowDeclarativeShadowDom = true; - HTMLTemplateElement.allowDeclarativeShadowDom = true; - XMLHttpRequest.allowDeclarativeShadowDom = true; - DocumentFragment.allowDeclarativeShadowDom = true; - Document.allowDeclarativeShadowDom = true; // For innerHTML - A new <iframe> sandbox flag: allow-declarative-shadow-dom This mitigates the potential client-side XSS sanitizer bypass detailed in the explainer and at [1]. Assuming these changes are functional, and mitigate the issue, this new behavior will be folded into the spec PRs at [2] and [3]. But given the security implications of the existing code, I'd like to get this landed first. [1] whatwg/dom#912 (comment) [2] whatwg/html#5465 [3] whatwg/dom#892 Bug: 1042130 Change-Id: I088f28f63078a0d26e354a4442494c0132b47ffc
This CL implements most of the suggestions from [1], which effectively block declarative Shadow DOM from being used by any fragment parser entry point, unless an explicit opt-in is toggled. The opt-ins include: - DOMParser.allowDeclarativeShadowDom = true; - HTMLTemplateElement.allowDeclarativeShadowDom = true; - XMLHttpRequest.allowDeclarativeShadowDom = true; - DocumentFragment.allowDeclarativeShadowDom = true; - Document.allowDeclarativeShadowDom = true; // For innerHTML - A new <iframe> sandbox flag: allow-declarative-shadow-dom This mitigates the potential client-side XSS sanitizer bypass detailed in the explainer and at [1]. Assuming these changes are functional, and mitigate the issue, this new behavior will be folded into the spec PRs at [2] and [3]. But given the security implications of the existing code, I'd like to get this landed first. [1] whatwg/dom#912 (comment) [2] whatwg/html#5465 [3] whatwg/dom#892 Bug: 1042130 Change-Id: I088f28f63078a0d26e354a4442494c0132b47ffc Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2513525 Commit-Queue: Mason Freed <[email protected]> Reviewed-by: Kouhei Ueno <[email protected]> Reviewed-by: Kinuko Yasuda <[email protected]> Cr-Commit-Position: refs/heads/master@{#824591}
This CL implements most of the suggestions from [1], which effectively block declarative Shadow DOM from being used by any fragment parser entry point, unless an explicit opt-in is toggled. The opt-ins include: - DOMParser.allowDeclarativeShadowDom = true; - HTMLTemplateElement.allowDeclarativeShadowDom = true; - XMLHttpRequest.allowDeclarativeShadowDom = true; - DocumentFragment.allowDeclarativeShadowDom = true; - Document.allowDeclarativeShadowDom = true; // For innerHTML - A new <iframe> sandbox flag: allow-declarative-shadow-dom This mitigates the potential client-side XSS sanitizer bypass detailed in the explainer and at [1]. Assuming these changes are functional, and mitigate the issue, this new behavior will be folded into the spec PRs at [2] and [3]. But given the security implications of the existing code, I'd like to get this landed first. [1] whatwg/dom#912 (comment) [2] whatwg/html#5465 [3] whatwg/dom#892 Bug: 1042130 Change-Id: I088f28f63078a0d26e354a4442494c0132b47ffc Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2513525 Commit-Queue: Mason Freed <[email protected]> Reviewed-by: Kouhei Ueno <[email protected]> Reviewed-by: Kinuko Yasuda <[email protected]> Cr-Commit-Position: refs/heads/master@{#824591}
…arsing to be opt-in, a=testonly Automatic update from web-platform-tests Change declarative Shadow DOM fragment parsing to be opt-in This CL implements most of the suggestions from [1], which effectively block declarative Shadow DOM from being used by any fragment parser entry point, unless an explicit opt-in is toggled. The opt-ins include: - DOMParser.allowDeclarativeShadowDom = true; - HTMLTemplateElement.allowDeclarativeShadowDom = true; - XMLHttpRequest.allowDeclarativeShadowDom = true; - DocumentFragment.allowDeclarativeShadowDom = true; - Document.allowDeclarativeShadowDom = true; // For innerHTML - A new <iframe> sandbox flag: allow-declarative-shadow-dom This mitigates the potential client-side XSS sanitizer bypass detailed in the explainer and at [1]. Assuming these changes are functional, and mitigate the issue, this new behavior will be folded into the spec PRs at [2] and [3]. But given the security implications of the existing code, I'd like to get this landed first. [1] whatwg/dom#912 (comment) [2] whatwg/html#5465 [3] whatwg/dom#892 Bug: 1042130 Change-Id: I088f28f63078a0d26e354a4442494c0132b47ffc Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2513525 Commit-Queue: Mason Freed <[email protected]> Reviewed-by: Kouhei Ueno <[email protected]> Reviewed-by: Kinuko Yasuda <[email protected]> Cr-Commit-Position: refs/heads/master@{#824591} -- wpt-commits: b13461b9a46b46eb1b092a58bde2b10418e7a73d wpt-pr: 26398
…arsing to be opt-in, a=testonly Automatic update from web-platform-tests Change declarative Shadow DOM fragment parsing to be opt-in This CL implements most of the suggestions from [1], which effectively block declarative Shadow DOM from being used by any fragment parser entry point, unless an explicit opt-in is toggled. The opt-ins include: - DOMParser.allowDeclarativeShadowDom = true; - HTMLTemplateElement.allowDeclarativeShadowDom = true; - XMLHttpRequest.allowDeclarativeShadowDom = true; - DocumentFragment.allowDeclarativeShadowDom = true; - Document.allowDeclarativeShadowDom = true; // For innerHTML - A new <iframe> sandbox flag: allow-declarative-shadow-dom This mitigates the potential client-side XSS sanitizer bypass detailed in the explainer and at [1]. Assuming these changes are functional, and mitigate the issue, this new behavior will be folded into the spec PRs at [2] and [3]. But given the security implications of the existing code, I'd like to get this landed first. [1] whatwg/dom#912 (comment) [2] whatwg/html#5465 [3] whatwg/dom#892 Bug: 1042130 Change-Id: I088f28f63078a0d26e354a4442494c0132b47ffc Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2513525 Commit-Queue: Mason Freed <[email protected]> Reviewed-by: Kouhei Ueno <[email protected]> Reviewed-by: Kinuko Yasuda <[email protected]> Cr-Commit-Position: refs/heads/master@{#824591} -- wpt-commits: b13461b9a46b46eb1b092a58bde2b10418e7a73d wpt-pr: 26398
96267bf
to
53dde66
Compare
This PR has been updated to include the "opt-in" mechanics described in #912. The changes I made here roughly match the current implementation of Chromium, so I'm hoping they're functional. But comments appreciated. Note that no matter what I do, I am unable to get rid of the "parse error while closing p element" error. I bisected this error down to the addition of |
53dde66
to
0067e75
Compare
Per the spec discussion: whatwg/html#5465 (comment) this changes the expectation for the tests to be: document.createElement("template").shadowRootMode === "" rather than === null. Note that this CL does not change Chromium's behavior, and as such I cannot check if there are other tests that implicitly also do a similar check. More tests might need to change once I (or someone) implements this new behavior in a browser. Bug: 1379513 Change-Id: I0ea1371d612d524fdecc287f3f1790d601c64982
Per the spec discussion: whatwg/html#5465 (comment) this changes the expectation for the tests to be: document.createElement("template").shadowRootMode === "" rather than === null. Note that this CL does not change Chromium's behavior, and as such I cannot check if there are other tests that implicitly also do a similar check. More tests might need to change once I (or someone) implements this new behavior in a browser. Bug: 1379513 Change-Id: I0ea1371d612d524fdecc287f3f1790d601c64982
Per the spec discussion: whatwg/html#5465 (comment) this changes the expectation for the tests to be: document.createElement("template").shadowRootMode === "" rather than === null. Note that this CL does not change Chromium's behavior, and as such I cannot check if there are other tests that implicitly also do a similar check. More tests might need to change once I (or someone) implements this new behavior in a browser. Bug: 1379513 Change-Id: I0ea1371d612d524fdecc287f3f1790d601c64982
Per the spec discussion: whatwg/html#5465 (comment) this changes the expectation for the tests to be: document.createElement("template").shadowRootMode === "" rather than === null. Note that this CL does not change Chromium's behavior, and as such I cannot check if there are other tests that implicitly also do a similar check. More tests might need to change once I (or someone) implements this new behavior in a browser. Bug: 1379513 Change-Id: I0ea1371d612d524fdecc287f3f1790d601c64982 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4954120 Commit-Queue: Mason Freed <[email protected]> Auto-Submit: Mason Freed <[email protected]> Reviewed-by: Joey Arhar <[email protected]> Cr-Commit-Position: refs/heads/main@{#1213658}
Per the spec discussion: whatwg/html#5465 (comment) this changes the expectation for the tests to be: document.createElement("template").shadowRootMode === "" rather than === null. Note that this CL does not change Chromium's behavior, and as such I cannot check if there are other tests that implicitly also do a similar check. More tests might need to change once I (or someone) implements this new behavior in a browser. Bug: 1379513 Change-Id: I0ea1371d612d524fdecc287f3f1790d601c64982 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4954120 Commit-Queue: Mason Freed <[email protected]> Auto-Submit: Mason Freed <[email protected]> Reviewed-by: Joey Arhar <[email protected]> Cr-Commit-Position: refs/heads/main@{#1213658}
Per the spec discussion: whatwg/html#5465 (comment) this changes the expectation for the tests to be: document.createElement("template").shadowRootMode === "" rather than === null. Note that this CL does not change Chromium's behavior, and as such I cannot check if there are other tests that implicitly also do a similar check. More tests might need to change once I (or someone) implements this new behavior in a browser. Bug: 1379513 Change-Id: I0ea1371d612d524fdecc287f3f1790d601c64982 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4954120 Commit-Queue: Mason Freed <[email protected]> Auto-Submit: Mason Freed <[email protected]> Reviewed-by: Joey Arhar <[email protected]> Cr-Commit-Position: refs/heads/main@{#1213658}
…ive shadow DOM tests, a=testonly Automatic update from web-platform-tests Remove .tentative extension for declarative shadow DOM tests The spec PR [1] is about to land, so these tests should no longer be tentative. [1] whatwg/html#5465 Bug: 1379513 Change-Id: I577abb26b3c29a04f14ddafec7400abadb4119ed Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4932173 Auto-Submit: Mason Freed <[email protected]> Commit-Queue: Joey Arhar <[email protected]> Reviewed-by: Joey Arhar <[email protected]> Cr-Commit-Position: refs/heads/main@{#1208576} -- wpt-commits: 6e6d5b9c16edca477916bf2118342160a2fb6243 wpt-pr: 42488
…ive shadow DOM tests, a=testonly Automatic update from web-platform-tests Remove .tentative extension for declarative shadow DOM tests The spec PR [1] is about to land, so these tests should no longer be tentative. [1] whatwg/html#5465 Bug: 1379513 Change-Id: I577abb26b3c29a04f14ddafec7400abadb4119ed Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4932173 Auto-Submit: Mason Freed <[email protected]> Commit-Queue: Joey Arhar <[email protected]> Reviewed-by: Joey Arhar <[email protected]> Cr-Commit-Position: refs/heads/main@{#1208576} -- wpt-commits: 6e6d5b9c16edca477916bf2118342160a2fb6243 wpt-pr: 42488
Corresponding HTML PR: whatwg/html#5465. Tests: https://wpt.fyi/results/shadow-dom/declarative. Closes #831 and closes #912. Co-authored-by: Anne van Kesteren <[email protected]>
🎉 Thanks for all of the reviews to get this landed! |
…ive shadow DOM tests, a=testonly Automatic update from web-platform-tests Remove .tentative extension for declarative shadow DOM tests The spec PR [1] is about to land, so these tests should no longer be tentative. [1] whatwg/html#5465 Bug: 1379513 Change-Id: I577abb26b3c29a04f14ddafec7400abadb4119ed Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4932173 Auto-Submit: Mason Freed <masonfchromium.org> Commit-Queue: Joey Arhar <jarharchromium.org> Reviewed-by: Joey Arhar <jarharchromium.org> Cr-Commit-Position: refs/heads/main{#1208576} -- wpt-commits: 6e6d5b9c16edca477916bf2118342160a2fb6243 wpt-pr: 42488 UltraBlame original commit: 6b6fe421c8e0858c7ca0cabb67d3d480630583a9
…ive shadow DOM tests, a=testonly Automatic update from web-platform-tests Remove .tentative extension for declarative shadow DOM tests The spec PR [1] is about to land, so these tests should no longer be tentative. [1] whatwg/html#5465 Bug: 1379513 Change-Id: I577abb26b3c29a04f14ddafec7400abadb4119ed Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4932173 Auto-Submit: Mason Freed <masonfchromium.org> Commit-Queue: Joey Arhar <jarharchromium.org> Reviewed-by: Joey Arhar <jarharchromium.org> Cr-Commit-Position: refs/heads/main{#1208576} -- wpt-commits: 6e6d5b9c16edca477916bf2118342160a2fb6243 wpt-pr: 42488 UltraBlame original commit: 6b6fe421c8e0858c7ca0cabb67d3d480630583a9
…ive shadow DOM tests, a=testonly Automatic update from web-platform-tests Remove .tentative extension for declarative shadow DOM tests The spec PR [1] is about to land, so these tests should no longer be tentative. [1] whatwg/html#5465 Bug: 1379513 Change-Id: I577abb26b3c29a04f14ddafec7400abadb4119ed Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4932173 Auto-Submit: Mason Freed <masonfchromium.org> Commit-Queue: Joey Arhar <jarharchromium.org> Reviewed-by: Joey Arhar <jarharchromium.org> Cr-Commit-Position: refs/heads/main{#1208576} -- wpt-commits: 6e6d5b9c16edca477916bf2118342160a2fb6243 wpt-pr: 42488 UltraBlame original commit: 6b6fe421c8e0858c7ca0cabb67d3d480630583a9
@mfreed7 thank you! For contributing this feature to the web and working on these PRs over a period of three(!) years. |
https://bugs.webkit.org/show_bug.cgi?id=263852 rdar://117655691 Reviewed by Ryosuke Niwa. As discussed in whatwg/html#5465 shadowRootMode is to be reflected as DOMString, not DOMString?. DOMParser will also no longer be extended to have a dictionary argument. The tests have been synchronized with web-platform-tests up until and including web-platform-tests/wpt#42833 which upstreamed a couple minor adjustments. * LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/declarative-after-attachshadow-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/declarative-after-attachshadow.tentative-expected.txt. * LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/declarative-after-attachshadow.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/declarative-after-attachshadow.tentative.html. * LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/declarative-parser-interaction-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/declarative-parser-interaction.tentative-expected.txt. * LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/declarative-parser-interaction.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/declarative-parser-interaction.tentative.html. * LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/declarative-shadow-dom-attachment-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/declarative-shadow-dom-attachment.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/declarative-shadow-dom-attachment.tentative.html. * LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/declarative-shadow-dom-attachment.tentative-expected.txt: Removed. * LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/declarative-shadow-dom-basic-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/declarative-shadow-dom-basic.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/declarative-shadow-dom-basic.tentative.html. * LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/declarative-shadow-dom-basic.tentative-expected.txt: Removed. * LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/declarative-shadow-dom-opt-in-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/declarative-shadow-dom-opt-in.tentative-expected.txt. * LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/declarative-shadow-dom-opt-in.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/declarative-shadow-dom-opt-in.tentative.html. * LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/declarative-with-disabled-shadow-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/declarative-with-disabled-shadow.tentative-expected.txt. * LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/declarative-with-disabled-shadow.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/declarative-with-disabled-shadow.tentative.html. * LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/innerhtml-before-closing-tag-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/innerhtml-before-closing-tag.tentative-expected.txt. * LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/innerhtml-before-closing-tag.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/innerhtml-before-closing-tag.tentative.html. * LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/innerhtml-on-ordinary-template.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/innerhtml-on-ordinary-template.tentative.html. * LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/innerhtml-on-ordinary-template.tentative-expected.txt: Removed. * LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/move-template-before-closing-tag-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/move-template-before-closing-tag.tentative-expected.txt. * LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/move-template-before-closing-tag.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/move-template-before-closing-tag.tentative.html. * LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/script-access-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/script-access.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/script-access.tentative.html. * LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/script-access.tentative-expected.txt: Removed. * LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/support/helpers.js: Removed. * LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/support/w3c-import.log: * LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/w3c-import.log: * Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml: * Source/WebCore/CMakeLists.txt: * Source/WebCore/DerivedSources-input.xcfilelist: * Source/WebCore/DerivedSources-output.xcfilelist: * Source/WebCore/DerivedSources.make: * Source/WebCore/Sources.txt: * Source/WebCore/WebCore.xcodeproj/project.pbxproj: * Source/WebCore/html/HTMLTemplateElement.cpp: (WebCore::HTMLTemplateElement::shadowRootMode const): (WebCore::HTMLTemplateElement::setShadowRootMode): * Source/WebCore/html/HTMLTemplateElement.idl: * Source/WebCore/xml/DOMParser.cpp: (WebCore::DOMParser::parseFromString): * Source/WebCore/xml/DOMParser.h: * Source/WebCore/xml/DOMParser.idl: * Source/WebCore/xml/ParseFromStringOptions.h: Removed. * Source/WebCore/xml/ParseFromStringOptions.idl: Removed. Canonical link: https://commits.webkit.org/269976@main
…hadowRootMode IDL to null, a=testonly Automatic update from web-platform-tests Change expectation for invalid/missing shadowRootMode IDL to null Per the spec discussion: whatwg/html#5465 (comment) this changes the expectation for the tests to be: document.createElement("template").shadowRootMode === "" rather than === null. Note that this CL does not change Chromium's behavior, and as such I cannot check if there are other tests that implicitly also do a similar check. More tests might need to change once I (or someone) implements this new behavior in a browser. Bug: 1379513 Change-Id: I0ea1371d612d524fdecc287f3f1790d601c64982 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4954120 Commit-Queue: Mason Freed <[email protected]> Auto-Submit: Mason Freed <[email protected]> Reviewed-by: Joey Arhar <[email protected]> Cr-Commit-Position: refs/heads/main@{#1213658} -- wpt-commits: af6cbc76339f4d2bd67bcee8e1d9b3be879853eb wpt-pr: 42619
…hadowRootMode IDL to null, a=testonly Automatic update from web-platform-tests Change expectation for invalid/missing shadowRootMode IDL to null Per the spec discussion: whatwg/html#5465 (comment) this changes the expectation for the tests to be: document.createElement("template").shadowRootMode === "" rather than === null. Note that this CL does not change Chromium's behavior, and as such I cannot check if there are other tests that implicitly also do a similar check. More tests might need to change once I (or someone) implements this new behavior in a browser. Bug: 1379513 Change-Id: I0ea1371d612d524fdecc287f3f1790d601c64982 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4954120 Commit-Queue: Mason Freed <[email protected]> Auto-Submit: Mason Freed <[email protected]> Reviewed-by: Joey Arhar <[email protected]> Cr-Commit-Position: refs/heads/main@{#1213658} -- wpt-commits: af6cbc76339f4d2bd67bcee8e1d9b3be879853eb wpt-pr: 42619
…hadowRootMode IDL to null, a=testonly Automatic update from web-platform-tests Change expectation for invalid/missing shadowRootMode IDL to null Per the spec discussion: whatwg/html#5465 (comment) this changes the expectation for the tests to be: document.createElement("template").shadowRootMode === "" rather than === null. Note that this CL does not change Chromium's behavior, and as such I cannot check if there are other tests that implicitly also do a similar check. More tests might need to change once I (or someone) implements this new behavior in a browser. Bug: 1379513 Change-Id: I0ea1371d612d524fdecc287f3f1790d601c64982 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4954120 Commit-Queue: Mason Freed <masonfchromium.org> Auto-Submit: Mason Freed <masonfchromium.org> Reviewed-by: Joey Arhar <jarharchromium.org> Cr-Commit-Position: refs/heads/main{#1213658} -- wpt-commits: af6cbc76339f4d2bd67bcee8e1d9b3be879853eb wpt-pr: 42619 UltraBlame original commit: 36bafbbc0d89633570c02ee499f4ae40db42c4b0
…hadowRootMode IDL to null, a=testonly Automatic update from web-platform-tests Change expectation for invalid/missing shadowRootMode IDL to null Per the spec discussion: whatwg/html#5465 (comment) this changes the expectation for the tests to be: document.createElement("template").shadowRootMode === "" rather than === null. Note that this CL does not change Chromium's behavior, and as such I cannot check if there are other tests that implicitly also do a similar check. More tests might need to change once I (or someone) implements this new behavior in a browser. Bug: 1379513 Change-Id: I0ea1371d612d524fdecc287f3f1790d601c64982 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4954120 Commit-Queue: Mason Freed <masonfchromium.org> Auto-Submit: Mason Freed <masonfchromium.org> Reviewed-by: Joey Arhar <jarharchromium.org> Cr-Commit-Position: refs/heads/main{#1213658} -- wpt-commits: af6cbc76339f4d2bd67bcee8e1d9b3be879853eb wpt-pr: 42619 UltraBlame original commit: 36bafbbc0d89633570c02ee499f4ae40db42c4b0
…hadowRootMode IDL to null, a=testonly Automatic update from web-platform-tests Change expectation for invalid/missing shadowRootMode IDL to null Per the spec discussion: whatwg/html#5465 (comment) this changes the expectation for the tests to be: document.createElement("template").shadowRootMode === "" rather than === null. Note that this CL does not change Chromium's behavior, and as such I cannot check if there are other tests that implicitly also do a similar check. More tests might need to change once I (or someone) implements this new behavior in a browser. Bug: 1379513 Change-Id: I0ea1371d612d524fdecc287f3f1790d601c64982 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4954120 Commit-Queue: Mason Freed <masonfchromium.org> Auto-Submit: Mason Freed <masonfchromium.org> Reviewed-by: Joey Arhar <jarharchromium.org> Cr-Commit-Position: refs/heads/main{#1213658} -- wpt-commits: af6cbc76339f4d2bd67bcee8e1d9b3be879853eb wpt-pr: 42619 UltraBlame original commit: 36bafbbc0d89633570c02ee499f4ae40db42c4b0
The explainer for this feature is here: https://github.com/mfreed7/declarative-shadow-dom/blob/master/README.md
The issue discussion is here: whatwg/dom#831
There is a corresponding Pull Request for the DOM spec that goes along with this PR.
At least two implementers are interested (and none opposed):
Tests are written and can be reviewed and commented upon at:
Implementation bugs are filed:
Closes #7069
/acknowledgements.html ( diff )
/document-lifecycle.html ( diff )
/document-sequences.html ( diff )
/dynamic-markup-insertion.html ( diff )
/indices.html ( diff )
/infrastructure.html ( diff )
/parsing.html ( diff )
/scripting.html ( diff )