diff --git a/Libraries/LibWeb/HTML/BrowsingContext.cpp b/Libraries/LibWeb/HTML/BrowsingContext.cpp index 9592f795d1f..5abbbf51257 100644 --- a/Libraries/LibWeb/HTML/BrowsingContext.cpp +++ b/Libraries/LibWeb/HTML/BrowsingContext.cpp @@ -9,28 +9,20 @@ #include #include #include -#include #include -#include #include #include -#include -#include -#include #include #include -#include #include #include #include #include #include #include -#include #include #include #include -#include namespace Web::HTML { @@ -312,7 +304,7 @@ void BrowsingContext::visit_edges(Cell::Visitor& visitor) } // https://html.spec.whatwg.org/multipage/document-sequences.html#bc-traversable -GC::Ref BrowsingContext::top_level_traversable() const +GC::Ref 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(); @@ -435,15 +427,6 @@ BrowsingContext const* BrowsingContext::the_one_permitted_sandboxed_navigator() return nullptr; } -GC::Ptr BrowsingContext::first_child() const -{ - return m_first_child; -} -GC::Ptr BrowsingContext::next_sibling() const -{ - return m_next_sibling; -} - // https://html.spec.whatwg.org/multipage/document-sequences.html#ancestor-browsing-context bool BrowsingContext::is_ancestor_of(BrowsingContext const& potential_descendant) const { diff --git a/Libraries/LibWeb/HTML/BrowsingContext.h b/Libraries/LibWeb/HTML/BrowsingContext.h index fd027bfaaaf..d0f5bf30256 100644 --- a/Libraries/LibWeb/HTML/BrowsingContext.h +++ b/Libraries/LibWeb/HTML/BrowsingContext.h @@ -6,24 +6,13 @@ #pragma once -#include #include -#include -#include -#include -#include -#include -#include #include #include -#include #include #include #include #include -#include -#include -#include namespace Web::HTML { @@ -42,58 +31,11 @@ public: virtual ~BrowsingContext() override; - GC::Ref top_level_traversable() const; - - GC::Ptr first_child() const; - GC::Ptr next_sibling() const; + GC::Ref top_level_traversable() const; bool is_ancestor_of(BrowsingContext const&) const; bool is_familiar_with(BrowsingContext const&) const; - template - TraversalDecision for_each_in_inclusive_subtree(Callback callback) const - { - if (callback(*this) == TraversalDecision::Break) - return TraversalDecision::Break; - for (auto child = first_child(); child; child = child->next_sibling()) { - if (child->for_each_in_inclusive_subtree(callback) == TraversalDecision::Break) - return TraversalDecision::Break; - } - return TraversalDecision::Continue; - } - - template - TraversalDecision for_each_in_inclusive_subtree(Callback callback) - { - if (callback(*this) == TraversalDecision::Break) - return TraversalDecision::Break; - for (auto child = first_child(); child; child = child->next_sibling()) { - if (child->for_each_in_inclusive_subtree(callback) == TraversalDecision::Break) - return TraversalDecision::Break; - } - return TraversalDecision::Continue; - } - - template - TraversalDecision for_each_in_subtree(Callback callback) const - { - for (auto child = first_child(); child; child = child->next_sibling()) { - if (child->for_each_in_inclusive_subtree(callback) == TraversalDecision::Break) - return TraversalDecision::Break; - } - return TraversalDecision::Continue; - } - - template - TraversalDecision for_each_in_subtree(Callback callback) - { - for (auto child = first_child(); child; child = child->next_sibling()) { - if (child->for_each_in_inclusive_subtree(callback) == TraversalDecision::Break) - return TraversalDecision::Break; - } - return TraversalDecision::Continue; - } - bool is_top_level() const; bool is_auxiliary() const { return m_is_auxiliary; } @@ -147,7 +89,7 @@ private: GC::Ref m_page; // https://html.spec.whatwg.org/multipage/document-sequences.html#browsing-context - GC::Ptr m_window_proxy; + GC::Ptr m_window_proxy; // https://html.spec.whatwg.org/multipage/browsers.html#opener-browsing-context GC::Ptr m_opener_browsing_context; diff --git a/Libraries/LibWeb/XHR/XMLHttpRequest.cpp b/Libraries/LibWeb/XHR/XMLHttpRequest.cpp index cdf536d06d3..e28aba712ad 100644 --- a/Libraries/LibWeb/XHR/XMLHttpRequest.cpp +++ b/Libraries/LibWeb/XHR/XMLHttpRequest.cpp @@ -47,6 +47,7 @@ #include #include #include +#include #include #include #include diff --git a/Services/WebContent/ConnectionFromClient.cpp b/Services/WebContent/ConnectionFromClient.cpp index 0bd32fa6bdd..4a9db43f0d0 100644 --- a/Services/WebContent/ConnectionFromClient.cpp +++ b/Services/WebContent/ConnectionFromClient.cpp @@ -439,14 +439,11 @@ void ConnectionFromClient::inspect_dom_node(u64 page_id, Web::UniqueNodeID const if (!page.has_value()) return; - auto& top_context = page->page().top_level_browsing_context(); - - top_context.for_each_in_inclusive_subtree([&](auto& ctx) { - if (ctx.active_document() != nullptr) { - ctx.active_document()->set_inspected_node(nullptr, {}); + for (auto& navigable : Web::HTML::all_navigables()) { + if (navigable->active_document() != nullptr) { + navigable->active_document()->set_inspected_node(nullptr, {}); } - return Web::TraversalDecision::Continue; - }); + } auto* node = Web::DOM::Node::from_unique_id(node_id); // Note: Nodes without layout (aka non-visible nodes, don't have style computed)