StyleSheet.cpp 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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. #include <LibWeb/Bindings/StyleSheetPrototype.h>
  8. #include <LibWeb/CSS/CSSStyleSheet.h>
  9. #include <LibWeb/CSS/StyleSheet.h>
  10. #include <LibWeb/DOM/Element.h>
  11. namespace Web::CSS {
  12. StyleSheet::StyleSheet(JS::Realm& realm, MediaList& media)
  13. : PlatformObject(realm)
  14. , m_media(media)
  15. {
  16. }
  17. void StyleSheet::visit_edges(Cell::Visitor& visitor)
  18. {
  19. Base::visit_edges(visitor);
  20. visitor.visit(m_owner_node);
  21. visitor.visit(m_parent_style_sheet);
  22. visitor.visit(m_media);
  23. }
  24. void StyleSheet::set_owner_node(DOM::Element* element)
  25. {
  26. m_owner_node = element;
  27. }
  28. void StyleSheet::set_parent_css_style_sheet(CSSStyleSheet* parent)
  29. {
  30. m_parent_style_sheet = parent;
  31. }
  32. // https://drafts.csswg.org/cssom/#dom-stylesheet-title
  33. Optional<String> StyleSheet::title_for_bindings() const
  34. {
  35. // The title attribute must return the title or null if title is the empty string.
  36. if (m_title.is_empty())
  37. return {};
  38. return m_title;
  39. }
  40. }