/* * Copyright (c) 2025, Tim Flynn * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include namespace Web::HTML { class TextTrackObserver final : public Bindings::PlatformObject { WEB_PLATFORM_OBJECT(TextTrackObserver, Bindings::PlatformObject); GC_DECLARE_ALLOCATOR(TextTrackObserver); public: [[nodiscard]] GC::Ptr> track_readiness_observer() const { return m_track_readiness_observer; } void set_track_readiness_observer(Function); private: explicit TextTrackObserver(JS::Realm&, TextTrack&); virtual void visit_edges(Cell::Visitor&) override; virtual void finalize() override; GC::Ref m_text_track; GC::Ptr> m_track_readiness_observer; }; }