1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 11:38:11 +00:00

LibWeb: Reorganize window.parent so it looks a bit more like the spec

This commit is contained in:
Andreas Kling 2022-02-26 15:55:45 +01:00
parent 835ffbb365
commit fc5e414596
3 changed files with 30 additions and 12 deletions

View file

@ -451,4 +451,29 @@ RefPtr<HTML::Storage> Window::local_storage()
});
}
// https://html.spec.whatwg.org/multipage/browsers.html#dom-parent
Window* Window::parent()
{
// 1. Let current be this Window object's browsing context.
auto* current = associated_document().browsing_context();
// 2. If current is null, then return null.
if (!current)
return nullptr;
// 3. If current is a child browsing context of another browsing context parent,
// then return parent's WindowProxy object.
if (current->parent()) {
VERIFY(current->parent()->active_document());
return &current->parent()->active_document()->window();
}
// 4. Assert: current is a top-level browsing context.
VERIFY(current->is_top_level());
// FIXME: 5. Return current's WindowProxy object.
VERIFY(current->active_document());
return &current->active_document()->window();
}
}