mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-01-22 09:12:13 -05:00
LibXml: Notify listener when doctype is parsed
This commit is contained in:
parent
fe7d7f6f6b
commit
cd576e594d
Notes:
github-actions[bot]
2025-01-20 13:49:22 +00:00
Author: https://github.com/mikiubo 🔰 Commit: https://github.com/LadybirdBrowser/ladybird/commit/cd576e594d3 Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/3098 Reviewed-by: https://github.com/gmta ✅ Reviewed-by: https://github.com/shannonbooth ✅
3 changed files with 33 additions and 3 deletions
|
@ -182,9 +182,6 @@ ErrorOr<void, ParseError> Parser::parse_with_listener(Listener& listener)
|
|||
if (result.is_error())
|
||||
m_listener->error(result.error());
|
||||
m_listener->document_end();
|
||||
if (m_doctype.has_value()) {
|
||||
m_listener->set_doctype(m_doctype.release_value());
|
||||
}
|
||||
m_root_node.clear();
|
||||
return result;
|
||||
}
|
||||
|
@ -622,6 +619,10 @@ ErrorOr<void, ParseError> Parser::parse_doctype_decl()
|
|||
|
||||
rollback.disarm();
|
||||
m_doctype = move(doctype);
|
||||
if (m_doctype.has_value() && m_listener) {
|
||||
m_listener->set_doctype(m_doctype.value());
|
||||
}
|
||||
|
||||
return {};
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
Harness status: OK
|
||||
|
||||
Found 1 tests
|
||||
|
||||
1 Pass
|
||||
Pass DocumentType literals
|
|
@ -0,0 +1,23 @@
|
|||
<!DOCTYPE html PUBLIC "STAFF" "staffNS.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>DocumentType literals</title>
|
||||
<link rel="help" href="https://dom.spec.whatwg.org/#dom-documenttype-name"/>
|
||||
<link rel="help" href="https://dom.spec.whatwg.org/#dom-documenttype-publicid"/>
|
||||
<link rel="help" href="https://dom.spec.whatwg.org/#dom-documenttype-systemid"/>
|
||||
<script src="../../resources/testharness.js"></script>
|
||||
<script src="../../resources/testharnessreport.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="log"/>
|
||||
<script>
|
||||
test(function() {
|
||||
var doctype = document.firstChild;
|
||||
assert_true(doctype instanceof DocumentType)
|
||||
assert_equals(doctype.name, "html")
|
||||
assert_equals(doctype.publicId, 'STAFF')
|
||||
assert_equals(doctype.systemId, 'staffNS.dtd')
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in a new issue