LibWeb: Implement the "top-level traversable" of a browsing context
This commit is contained in:
parent
65467021e2
commit
6871fbce9f
Notes:
sideshowbarker
2024-07-17 03:59:29 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/6871fbce9f Pull-request: https://github.com/SerenityOS/serenity/pull/18478
2 changed files with 13 additions and 0 deletions
|
@ -21,6 +21,7 @@
|
|||
#include <LibWeb/HTML/RemoteBrowsingContext.h>
|
||||
#include <LibWeb/HTML/SandboxingFlagSet.h>
|
||||
#include <LibWeb/HTML/Scripting/WindowEnvironmentSettingsObject.h>
|
||||
#include <LibWeb/HTML/TraversableNavigable.h>
|
||||
#include <LibWeb/HTML/Window.h>
|
||||
#include <LibWeb/HTML/WindowProxy.h>
|
||||
#include <LibWeb/HighResolutionTime/TimeOrigin.h>
|
||||
|
@ -290,6 +291,16 @@ void BrowsingContext::visit_edges(Cell::Visitor& visitor)
|
|||
visitor.visit(m_previous_sibling);
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/document-sequences.html#bc-traversable
|
||||
JS::NonnullGCPtr<HTML::TraversableNavigable> BrowsingContext::top_level_traversable() const
|
||||
{
|
||||
// A browsing context's top-level traversable is its active document's node navigable's top-level traversable.
|
||||
auto traversable = active_document()->navigable()->top_level_traversable();
|
||||
VERIFY(traversable);
|
||||
VERIFY(traversable->is_top_level_traversable());
|
||||
return *traversable;
|
||||
}
|
||||
|
||||
void BrowsingContext::did_edit(Badge<EditEventHandler>)
|
||||
{
|
||||
reset_cursor_blink_cycle();
|
||||
|
|
|
@ -42,6 +42,8 @@ public:
|
|||
|
||||
virtual ~BrowsingContext() override;
|
||||
|
||||
JS::NonnullGCPtr<HTML::TraversableNavigable> top_level_traversable() const;
|
||||
|
||||
JS::GCPtr<BrowsingContext> parent() const { return m_parent; }
|
||||
void append_child(JS::NonnullGCPtr<BrowsingContext>);
|
||||
void remove_child(JS::NonnullGCPtr<BrowsingContext>);
|
||||
|
|
Loading…
Add table
Reference in a new issue