/* * Copyright (c) 2018-2024, Andreas Kling * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include namespace Web::SelectorEngine { enum class SelectorKind { Normal, Relative, }; struct MatchContext { GC::Ptr style_sheet_for_rule {}; GC::Ptr subject {}; bool collect_per_element_selector_involvement_metadata { false }; bool did_match_any_hover_rules { false }; }; bool matches(CSS::Selector const&, DOM::Element const&, GC::Ptr shadow_host, MatchContext& context, Optional = {}, GC::Ptr scope = {}, SelectorKind selector_kind = SelectorKind::Normal, GC::Ptr anchor = nullptr); }