/* * Copyright (c) 2023, Preston Taylor * Copyright (c) 2026, Sam Atkins * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include namespace Web::DOM { class StyleElementBase { public: virtual ~StyleElementBase() = default; void update_a_style_block(); CSS::CSSStyleSheet* sheet(); CSS::CSSStyleSheet const* sheet() const; [[nodiscard]] GC::Ptr style_sheet_list() { return m_style_sheet_list; } [[nodiscard]] GC::Ptr style_sheet_list() const { return m_style_sheet_list; } enum class AnyFailed : u8 { No, Yes, }; void finished_loading_critical_subresources(AnyFailed); void visit_style_element_edges(JS::Cell::Visitor&); virtual Element& as_element() = 0; private: // https://www.w3.org/TR/cssom/#associated-css-style-sheet GC::Ptr m_associated_css_style_sheet; GC::Ptr m_style_sheet_list; Optional m_document_load_event_delayer; }; }