Automatic update from web-platform-tests [Sanitizer] setHTML + setHTMLUnsafe use HTML fragment parser. setHTML and setHTMLUnsafe should always use HTML syntax. Also, conservatively always match localname + namespace, but not prefix. The current implementation uses QualifiedName::operator== in several places, where QualifedName::Matches (which ignores prefix) should have been used. Sanitizer API consistently ignores the prefix. Bug: 518063436 Change-Id: Ifca1067fa1edcc127b861543fbef42d9f62a213b Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7890038 Commit-Queue: Daniel Vogelheim <vogelheim@chromium.org> Reviewed-by: Joey Arhar <jarhar@chromium.org> Reviewed-by: Noam Rosenthal <nrosenthal@google.com> Cr-Commit-Position: refs/heads/main@{#1639526} -- wpt-commits: 15dd35afe424c141c46d4fa27cf57b3140756f61 wpt-pr: 60322
54 lines
1.3 KiB
HTML
54 lines
1.3 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>Test that setHTML parses as HTML even in an XML document</title>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="support/html5lib-testcase-support.js"></script>
|
|
</head>
|
|
<body>
|
|
<script type="html5lib-tests">
|
|
#data
|
|
Hello!
|
|
#document
|
|
| "Hello!"
|
|
|
|
#data
|
|
<br>
|
|
#document
|
|
| <br>
|
|
|
|
#data
|
|
<p>Hi</p>
|
|
#document
|
|
| <p>
|
|
| "Hi"
|
|
|
|
#data
|
|
<iframe></iframe><p>text</p>
|
|
#document
|
|
| <p>
|
|
| "text"
|
|
|
|
</script>
|
|
<script>
|
|
html5lib_testcases_from_script().forEach((testcase, index) => {
|
|
test(_ => {
|
|
const doc = document.implementation.createDocument("application/xml", "xml");
|
|
const context = doc.documentElement;
|
|
context.setHTML(testcase.data);
|
|
assert_testcase(context, testcase);
|
|
}, `Testcase #${index} with xmlDoc.setHTML("${testcase.data}")`);
|
|
|
|
test(_ => {
|
|
const doc = document.implementation.createDocument("application/xml", "xml");
|
|
doc.documentElement.appendChild(doc.createElement("div"));
|
|
context = doc.documentElement.firstElementChild.attachShadow({mode: "open"});
|
|
context.setHTML(testcase.data);
|
|
assert_testcase(context, testcase);
|
|
}, `Testcase #${index}, shadow inside xmlDoc, shadowroot.setHTML("${testcase.data}")`);
|
|
});
|
|
</script>
|
|
</body>
|
|
</html>
|