mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 22:27:35 +00:00
LibWeb: Update the document "abort" algorithm for navigables
This commit is contained in:
parent
ce9af96f78
commit
2c3bb26551
1 changed files with 11 additions and 9 deletions
|
@ -2732,17 +2732,19 @@ void Document::destroy()
|
|||
// https://html.spec.whatwg.org/multipage/browsing-the-web.html#abort-a-document
|
||||
void Document::abort()
|
||||
{
|
||||
// 1. Abort the active documents of every child browsing context.
|
||||
// 1. Abort the active documents of each of document's descendant navigables.
|
||||
// If this results in any of those Document objects having their salvageable state set to false,
|
||||
// then set document's salvageable state to false also.
|
||||
if (browsing_context()) {
|
||||
browsing_context()->for_each_child([this](HTML::BrowsingContext& child_browsing_context) {
|
||||
if (auto* child_document = child_browsing_context.active_document()) {
|
||||
child_document->abort();
|
||||
if (!child_document->m_salvageable)
|
||||
m_salvageable = false;
|
||||
}
|
||||
});
|
||||
for (auto navigable : descendant_navigables()) {
|
||||
if (auto document = navigable->active_document()) {
|
||||
// NOTE: This is not in the spec but we need to abort ongoing navigations in all descendandt navigables.
|
||||
// See https://github.com/whatwg/html/issues/9711
|
||||
navigable->set_ongoing_navigation({});
|
||||
|
||||
document->abort();
|
||||
if (!document->m_salvageable)
|
||||
m_salvageable = false;
|
||||
}
|
||||
}
|
||||
|
||||
// FIXME: 2. Cancel any instances of the fetch algorithm in the context of document,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue