Serenity Operating System
at master 39 lines 977 B view raw
1/* 2 * Copyright (c) 2018-2021, Andreas Kling <kling@serenityos.org> 3 * Copyright (c) 2021, the SerenityOS developers. 4 * 5 * SPDX-License-Identifier: BSD-2-Clause 6 */ 7 8#pragma once 9 10#include <LibWeb/HTML/HTMLElement.h> 11 12namespace Web::HTML { 13 14class HTMLStyleElement final : public HTMLElement { 15 WEB_PLATFORM_OBJECT(HTMLStyleElement, HTMLElement); 16 17public: 18 virtual ~HTMLStyleElement() override; 19 20 virtual void children_changed() override; 21 virtual void inserted() override; 22 virtual void removed_from(Node*) override; 23 24 void update_a_style_block(); 25 26 CSS::CSSStyleSheet* sheet(); 27 CSS::CSSStyleSheet const* sheet() const; 28 29private: 30 HTMLStyleElement(DOM::Document&, DOM::QualifiedName); 31 32 virtual JS::ThrowCompletionOr<void> initialize(JS::Realm&) override; 33 virtual void visit_edges(Cell::Visitor&) override; 34 35 // https://www.w3.org/TR/cssom/#associated-css-style-sheet 36 JS::GCPtr<CSS::CSSStyleSheet> m_associated_css_style_sheet; 37}; 38 39}