Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 25a4ff15329b263c8d8550dbda463e09d2d5e41b https://github.com/WebKit/WebKit/commit/25a4ff15329b263c8d8550dbda463e09d2d5e41b Author: Anne van Kesteren <ann...@annevk.nl> Date: 2023-12-01 (Fri, 01 Dec 2023)
Changed paths: A LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/Document-parseHTMLUnsafe-encoding-expected.txt A LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/Document-parseHTMLUnsafe-encoding.html A LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/Document-parseHTMLUnsafe-expected.txt A LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/Document-parseHTMLUnsafe-style-attribute-expected.txt A LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/Document-parseHTMLUnsafe-style-attribute.html A LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/Document-parseHTMLUnsafe-url-base-expected.txt A LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/Document-parseHTMLUnsafe-url-base-pushstate-expected.txt A LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/Document-parseHTMLUnsafe-url-base-pushstate.html A LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/Document-parseHTMLUnsafe-url-base.html A LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/Document-parseHTMLUnsafe-url-expected.txt A LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/Document-parseHTMLUnsafe-url-moretests-expected.txt A LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/Document-parseHTMLUnsafe-url-moretests.html A LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/Document-parseHTMLUnsafe-url-pushstate-expected.txt A LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/Document-parseHTMLUnsafe-url-pushstate.html A LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/Document-parseHTMLUnsafe-url.html A LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/Document-parseHTMLUnsafe.html A LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/Element-setHTMLUnsafe-04-expected.txt A LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/Element-setHTMLUnsafe-04.html A LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/resources/parseHTMLUnsafe-iframe-base-pushstate.html A LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/resources/parseHTMLUnsafe-iframe-base.html A LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/resources/parseHTMLUnsafe-iframe-pushstate.html A LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/resources/parseHTMLUnsafe-iframe.html A LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/resources/parseHTMLUnsafe-iframe.js A LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/resources/parseHTMLUnsafe-url-tests.js A LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/resources/w3c-import.log A LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/setHTMLUnsafe-CEReactions-expected.txt A LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/setHTMLUnsafe-CEReactions.html A LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/setHTMLUnsafe-expected.txt A LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/setHTMLUnsafe-xml-expected.txt A LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/setHTMLUnsafe-xml.html A LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/setHTMLUnsafe.html A LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/w3c-import.log M LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/declarative-shadow-dom-attachment-expected.txt M LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/declarative-shadow-dom-basic-expected.txt M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml M Source/WebCore/Headers.cmake M Source/WebCore/WebCore.xcodeproj/project.pbxproj M Source/WebCore/dom/DOMImplementation.cpp M Source/WebCore/dom/Document.cpp M Source/WebCore/dom/Document.h M Source/WebCore/dom/Document.idl M Source/WebCore/dom/DocumentFragment.h M Source/WebCore/dom/Element.cpp M Source/WebCore/dom/Element.h R Source/WebCore/dom/FragmentScriptingPermission.h M Source/WebCore/dom/InnerHTML.idl A Source/WebCore/dom/ParserContentPolicy.h M Source/WebCore/dom/ScriptableDocumentParser.h M Source/WebCore/dom/ShadowRoot.cpp M Source/WebCore/dom/ShadowRoot.h M Source/WebCore/dom/ShadowRootInit.idl M Source/WebCore/editing/markup.cpp M Source/WebCore/editing/markup.h M Source/WebCore/html/HTMLTemplateElement.idl M Source/WebCore/html/parser/HTMLConstructionSite.cpp M Source/WebCore/html/parser/HTMLConstructionSite.h M Source/WebCore/html/parser/HTMLDocumentParserFastPath.cpp M Source/WebCore/xml/DOMParser.cpp M Source/WebCore/xml/parser/XMLDocumentParser.h M Tools/TestWebKitAPI/Tests/WebCore/HTMLParserIdioms.cpp Log Message: ----------- Add Element/ShadowRoot's setHTMLUnsafe() and Document.parseHTMLUnsafe() methods https://bugs.webkit.org/show_bug.cgi?id=261143 rdar://115345128 Reviewed by Ryosuke Niwa. This change implements these methods from the HTML Standard: https://html.spec.whatwg.org/#unsafe-html-parsing-methods Rename FragmentScriptingPermission.h to ParserContentPolicy.h as per the FIXME. Rename DeclarativeShadowDOM to DeclarativeShadowRoots to match the specification. Abstract the implementation of Element/ShadowRoot's setInnerHTML() so it can be reused by the new Element/ShadowRoot's setHTMLUnsafe(). Do the same for DOMParser to the benefit of Document.parseHTMLUnsafe(). Ensure that in both of those cases the new method can only go down the HTML parser path and has declarative shadow root support enabled. Put the new methods behind a DeclarativeShadowRootsParserAPIsEnabled preference (enabled by default) in case something is discovered to be amiss later on. Synchronize web-platform-tests: https://github.com/web-platform-tests/wpt/commit/31655b30de9bb2af8583a4d08163eae62edb4d8f Thanks to rniwa's earlier effort around the now-obsolete DOMParser API this was all relatively straightforward. Thanks rniwa! * LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/Document-parseHTMLUnsafe-encoding-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/Document-parseHTMLUnsafe-encoding.html: Added. * LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/Document-parseHTMLUnsafe-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/Document-parseHTMLUnsafe-style-attribute-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/Document-parseHTMLUnsafe-style-attribute.html: Added. * LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/Document-parseHTMLUnsafe-url-base-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/Document-parseHTMLUnsafe-url-base-pushstate-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/Document-parseHTMLUnsafe-url-base-pushstate.html: Added. * LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/Document-parseHTMLUnsafe-url-base.html: Added. * LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/Document-parseHTMLUnsafe-url-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/Document-parseHTMLUnsafe-url-moretests-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/Document-parseHTMLUnsafe-url-moretests.html: Added. * LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/Document-parseHTMLUnsafe-url-pushstate-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/Document-parseHTMLUnsafe-url-pushstate.html: Added. * LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/Document-parseHTMLUnsafe-url.html: Added. * LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/Document-parseHTMLUnsafe.html: Added. * LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/Element-setHTMLUnsafe-04-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/Element-setHTMLUnsafe-04.html: Added. * LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/resources/parseHTMLUnsafe-iframe-base-pushstate.html: Added. * LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/resources/parseHTMLUnsafe-iframe-base.html: Added. * LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/resources/parseHTMLUnsafe-iframe-pushstate.html: Added. * LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/resources/parseHTMLUnsafe-iframe.html: Added. * LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/resources/parseHTMLUnsafe-iframe.js: Added. (window.doParse): * LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/resources/parseHTMLUnsafe-url-tests.js: Added. (assertURL): (input.of.Object.entries): * LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/resources/w3c-import.log: Added. * LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/setHTMLUnsafe-CEReactions-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/setHTMLUnsafe-CEReactions.html: Added. * LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/setHTMLUnsafe-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/setHTMLUnsafe-xml-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/setHTMLUnsafe-xml.html: Added. * LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/setHTMLUnsafe.html: Added. * LayoutTests/imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/w3c-import.log: Added. * LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/declarative-shadow-dom-attachment-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/shadow-dom/declarative/declarative-shadow-dom-basic-expected.txt: * Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml: * Source/WebCore/Headers.cmake: * Source/WebCore/WebCore.xcodeproj/project.pbxproj: * Source/WebCore/dom/DOMImplementation.cpp: * Source/WebCore/dom/Document.cpp: (WebCore::Document::parseMarkupUnsafe): (WebCore::Document::parseHTMLUnsafe): * Source/WebCore/dom/Document.h: * Source/WebCore/dom/Document.idl: * Source/WebCore/dom/DocumentFragment.h: * Source/WebCore/dom/Element.cpp: (WebCore::Element::replaceChildrenWithMarkup): (WebCore::Element::setHTMLUnsafe): (WebCore::Element::setInnerHTML): * Source/WebCore/dom/Element.h: * Source/WebCore/dom/InnerHTML.idl: * Source/WebCore/dom/ParserContentPolicy.h: Renamed from Source/WebCore/dom/FragmentScriptingPermission.h. * Source/WebCore/dom/ScriptableDocumentParser.h: * Source/WebCore/dom/ShadowRoot.cpp: (WebCore::ShadowRoot::replaceChildrenWithMarkup): (WebCore::ShadowRoot::setHTMLUnsafe): (WebCore::ShadowRoot::innerHTML const): (WebCore::ShadowRoot::setInnerHTML): * Source/WebCore/dom/ShadowRoot.h: * Source/WebCore/dom/ShadowRootInit.idl: * Source/WebCore/editing/markup.cpp: (WebCore::createFragmentForMarkup): * Source/WebCore/editing/markup.h: * Source/WebCore/html/HTMLTemplateElement.idl: * Source/WebCore/html/parser/HTMLConstructionSite.cpp: (WebCore::HTMLConstructionSite::HTMLConstructionSite): (WebCore::HTMLConstructionSite::insertHTMLTemplateElement): * Source/WebCore/html/parser/HTMLConstructionSite.h: * Source/WebCore/html/parser/HTMLDocumentParserFastPath.cpp: * Source/WebCore/xml/DOMParser.cpp: (WebCore::DOMParser::parseFromString): * Source/WebCore/xml/parser/XMLDocumentParser.h: * Tools/TestWebKitAPI/Tests/WebCore/HTMLParserIdioms.cpp: Canonical link: https://commits.webkit.org/271423@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes