/* * Copyright (c) 2024, Tim Flynn * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include namespace Web::HTML { class NavigationObserver final : public Bindings::PlatformObject { WEB_PLATFORM_OBJECT(NavigationObserver, Bindings::PlatformObject); JS_DECLARE_ALLOCATOR(NavigationObserver); public: [[nodiscard]] JS::GCPtr> navigation_complete() const { return m_navigation_complete; } void set_navigation_complete(Function); private: NavigationObserver(JS::Realm&, Navigable&); virtual void visit_edges(Cell::Visitor&) override; virtual void finalize() override; JS::NonnullGCPtr m_navigable; JS::GCPtr> m_navigation_complete; }; }