From c0939725a2d6538c1679f6b9bd8b1b6aa6bad0bc Mon Sep 17 00:00:00 2001 From: Jelle Raaijmakers Date: Mon, 24 Nov 2025 10:05:36 +0100 Subject: [PATCH] LibWeb: Change agent's signal_slots into a GC::RootVector As part of this, also move the constructor out of line so we don't unnecessarily add transitive includes. --- .../LibWeb/HTML/Scripting/SimilarOriginWindowAgent.cpp | 10 ++++++++++ .../LibWeb/HTML/Scripting/SimilarOriginWindowAgent.h | 10 ++-------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/Libraries/LibWeb/HTML/Scripting/SimilarOriginWindowAgent.cpp b/Libraries/LibWeb/HTML/Scripting/SimilarOriginWindowAgent.cpp index a996c942b5d..ede96f910dd 100644 --- a/Libraries/LibWeb/HTML/Scripting/SimilarOriginWindowAgent.cpp +++ b/Libraries/LibWeb/HTML/Scripting/SimilarOriginWindowAgent.cpp @@ -1,10 +1,13 @@ /* * Copyright (c) 2025, Shannon Booth + * Copyright (c) 2025, Jelle Raaijmakers * * SPDX-License-Identifier: BSD-2-Clause */ #include +#include +#include #include #include #include @@ -27,4 +30,11 @@ SimilarOriginWindowAgent& relevant_similar_origin_window_agent(JS::Object const& return as(*relevant_realm(object).vm().agent()); } +SimilarOriginWindowAgent::SimilarOriginWindowAgent(GC::Heap& heap, CanBlock can_block) + : Agent(can_block) + , pending_mutation_observers(heap) + , signal_slots(heap) +{ +} + } diff --git a/Libraries/LibWeb/HTML/Scripting/SimilarOriginWindowAgent.h b/Libraries/LibWeb/HTML/Scripting/SimilarOriginWindowAgent.h index e7aaa50fa86..206473f4a76 100644 --- a/Libraries/LibWeb/HTML/Scripting/SimilarOriginWindowAgent.h +++ b/Libraries/LibWeb/HTML/Scripting/SimilarOriginWindowAgent.h @@ -12,9 +12,7 @@ #include #include #include -#include #include -#include #include #include @@ -38,7 +36,7 @@ struct SimilarOriginWindowAgent : public Agent { // https://dom.spec.whatwg.org/#signal-slot-list // Each similar-origin window agent has signal slots (a set of slots), which is initially empty. [HTML] - Vector> signal_slots; + GC::RootVector> signal_slots; // https://html.spec.whatwg.org/multipage/custom-elements.html#current-element-queue // A similar-origin window agent's current element queue is the element queue at the top of its custom element reactions stack. @@ -46,11 +44,7 @@ struct SimilarOriginWindowAgent : public Agent { Vector> const& current_element_queue() const { return custom_element_reactions_stack.element_queue_stack.last(); } private: - SimilarOriginWindowAgent(GC::Heap& heap, CanBlock can_block) - : Agent(can_block) - , pending_mutation_observers(heap) - { - } + SimilarOriginWindowAgent(GC::Heap&, CanBlock); }; WEB_API SimilarOriginWindowAgent& relevant_similar_origin_window_agent(JS::Object const&);