mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-22 07:30:19 +00:00
LibWeb: Propagate exception if serializing inner node fails
Fixing a crash for the given test.
This commit is contained in:
parent
fd32f17c56
commit
472b56b47c
Notes:
github-actions[bot]
2024-11-01 18:03:09 +00:00
Author: https://github.com/shannonbooth Commit: https://github.com/LadybirdBrowser/ladybird/commit/472b56b47c7 Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/2103 Reviewed-by: https://github.com/awesomekling
3 changed files with 44 additions and 4 deletions
|
@ -0,0 +1,13 @@
|
|||
Summary
|
||||
|
||||
Harness status: OK
|
||||
|
||||
Rerun
|
||||
|
||||
Found 2 tests
|
||||
|
||||
1 Pass
|
||||
1 Fail
|
||||
Details
|
||||
Result Test Name MessagePass innerHTML in XHTML: getting while the document is in an invalid state
|
||||
Fail innerHTML in XHTML: getting while the document is in an invalid state 1
|
|
@ -0,0 +1,28 @@
|
|||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>innerHTML in XHTML: getting while the document is in an invalid state</title>
|
||||
<link rel="author" title="Ms2ger" href="mailto:ms2ger@gmail.com"/>
|
||||
<link rel="help" href="https://w3c.github.io/DOM-Parsing/#widl-Element-innerHTML"/>
|
||||
<link rel="help" href="http://www.whatwg.org/html5/#xml-fragment-serialization-algorithm"/>
|
||||
<link rel="help" href="http://www.whatwg.org/html5/#document.title"/>
|
||||
<script src="../resources/testharness.js"></script>
|
||||
<script src="../resources/testharnessreport.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
test(function() {
|
||||
document.documentElement.appendChild(document.createElement("test:test"));
|
||||
assert_throws_dom("INVALID_STATE_ERR", function() {
|
||||
document.documentElement.innerHTML;
|
||||
}, "getting element with \":\" in its local name");
|
||||
});
|
||||
test(function() {
|
||||
document.title = "\f";
|
||||
assert_throws_dom("INVALID_STATE_ERR", function() {
|
||||
document.getElementsByTagName("title")[0].innerHTML;
|
||||
}, "Getting a Text node whose data contains characters that are not matched by the XML Char production");
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -1568,11 +1568,10 @@ WebIDL::ExceptionOr<String> Node::serialize_fragment(DOMParsing::RequireWellForm
|
|||
// For inner, concatenate the serialization of all children.
|
||||
if (fragment_serialization_mode == FragmentSerializationMode::Inner) {
|
||||
StringBuilder markup;
|
||||
for_each_child([&markup, require_well_formed](auto& child) {
|
||||
auto child_markup = DOMParsing::serialize_node_to_xml_string(child, require_well_formed).release_value_but_fixme_should_propagate_errors();
|
||||
for (auto* child = first_child(); child; child = child->next_sibling()) {
|
||||
auto child_markup = TRY(DOMParsing::serialize_node_to_xml_string(*child, require_well_formed));
|
||||
markup.append(child_markup.bytes_as_string_view());
|
||||
return IterationDecision::Continue;
|
||||
});
|
||||
}
|
||||
return MUST(markup.to_string());
|
||||
}
|
||||
return DOMParsing::serialize_node_to_xml_string(*this, require_well_formed);
|
||||
|
|
Loading…
Reference in a new issue