TokenizedFeatures.h 924 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /*
  2. * Copyright (c) 2023, Tim Flynn <trflynn89@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <AK/HashMap.h>
  8. #include <AK/String.h>
  9. namespace Web::HTML::TokenizedFeature {
  10. #define TOKENIZED_FEATURE(Feature) \
  11. enum class Feature { \
  12. Yes, \
  13. No, \
  14. }
  15. TOKENIZED_FEATURE(Location);
  16. TOKENIZED_FEATURE(Menubar);
  17. TOKENIZED_FEATURE(NoOpener);
  18. TOKENIZED_FEATURE(NoReferrer);
  19. TOKENIZED_FEATURE(Popup);
  20. TOKENIZED_FEATURE(Resizable);
  21. TOKENIZED_FEATURE(Scrollbars);
  22. TOKENIZED_FEATURE(Status);
  23. TOKENIZED_FEATURE(Toolbar);
  24. using Map = OrderedHashMap<String, String>;
  25. }
  26. namespace Web::HTML {
  27. TokenizedFeature::Map tokenize_open_features(StringView features);
  28. TokenizedFeature::Popup check_if_a_popup_window_is_requested(TokenizedFeature::Map const&);
  29. template<Enum T>
  30. T parse_boolean_feature(StringView value);
  31. }