mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-26 17:40:27 +00:00
LibWeb: Update the document "abort" algorithm for navigables
This commit is contained in:
parent
ce9af96f78
commit
2c3bb26551
Notes:
sideshowbarker
2024-07-17 03:35:16 +09:00
Author: https://github.com/kalenikaliaksandr Commit: https://github.com/SerenityOS/serenity/commit/2c3bb26551 Pull-request: https://github.com/SerenityOS/serenity/pull/18219
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…
Reference in a new issue