DocumentObserver.cpp 692 B

1234567891011121314151617181920212223242526272829303132
  1. /*
  2. * Copyright (c) 2023, Tim Flynn <trflynn89@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include <LibJS/Runtime/Realm.h>
  7. #include <LibWeb/DOM/Document.h>
  8. #include <LibWeb/DOM/DocumentObserver.h>
  9. namespace Web::DOM {
  10. DocumentObserver::DocumentObserver(JS::Realm& realm, DOM::Document& document)
  11. : Bindings::PlatformObject(realm)
  12. , m_document(document)
  13. {
  14. m_document->register_document_observer({}, *this);
  15. }
  16. void DocumentObserver::visit_edges(Cell::Visitor& visitor)
  17. {
  18. Base::visit_edges(visitor);
  19. visitor.visit(m_document);
  20. }
  21. void DocumentObserver::finalize()
  22. {
  23. Base::finalize();
  24. m_document->unregister_document_observer({}, *this);
  25. }
  26. }