/* * Copyright (c) 2024, Jelle Raaijmakers * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include namespace Web::MediaSourceExtensions { struct BufferedChangeEventInit : public DOM::EventInit { GC::Ptr added_ranges; GC::Ptr removed_ranges; }; // https://w3c.github.io/media-source/#bufferedchangeevent-interface class BufferedChangeEvent : public DOM::Event { WEB_PLATFORM_OBJECT(BufferedChangeEvent, DOM::Event); GC_DECLARE_ALLOCATOR(BufferedChangeEvent); public: [[nodiscard]] static WebIDL::ExceptionOr> construct_impl(JS::Realm&, FlyString const& type, BufferedChangeEventInit const& = {}); private: BufferedChangeEvent(JS::Realm&, FlyString const& type, BufferedChangeEventInit const& event_init); virtual ~BufferedChangeEvent() override; virtual void initialize(JS::Realm&) override; }; }