/* * Copyright (c) 2023, Tim Flynn * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include namespace Web::HTML::TokenizedFeature { #define TOKENIZED_FEATURE(Feature) \ enum class Feature { \ Yes, \ No, \ } TOKENIZED_FEATURE(Location); TOKENIZED_FEATURE(Menubar); TOKENIZED_FEATURE(NoOpener); TOKENIZED_FEATURE(NoReferrer); TOKENIZED_FEATURE(Popup); TOKENIZED_FEATURE(Resizable); TOKENIZED_FEATURE(Scrollbars); TOKENIZED_FEATURE(Status); TOKENIZED_FEATURE(Toolbar); using Map = OrderedHashMap; } namespace Web::HTML { TokenizedFeature::Map tokenize_open_features(StringView features); TokenizedFeature::Popup check_if_a_popup_window_is_requested(TokenizedFeature::Map const&); template T parse_boolean_feature(StringView value); }