diff --git a/Libraries/LibWeb/HTML/HTMLMediaElement.cpp b/Libraries/LibWeb/HTML/HTMLMediaElement.cpp index 99a6cbc03d2..b3b47201f51 100644 --- a/Libraries/LibWeb/HTML/HTMLMediaElement.cpp +++ b/Libraries/LibWeb/HTML/HTMLMediaElement.cpp @@ -173,6 +173,18 @@ GC::Ref HTMLMediaElement::buffered() const return realm.create(realm); } +// https://html.spec.whatwg.org/multipage/media.html#dom-media-played +GC::Ref HTMLMediaElement::played() const +{ + auto& realm = this->realm(); + + // The played attribute must return a new static normalized TimeRanges object that represents the ranges of points on the media timeline of the media resource reached through the + // usual monotonic increase of the current playback position during normal playback, if any, at the time the attribute is evaluated. + auto time_ranges = realm.create(realm); + // FIXME: Actually add the correct ranges + return time_ranges; +} + // https://html.spec.whatwg.org/multipage/media.html#dom-navigator-canplaytype Bindings::CanPlayTypeResult HTMLMediaElement::can_play_type(StringView type) const { diff --git a/Libraries/LibWeb/HTML/HTMLMediaElement.h b/Libraries/LibWeb/HTML/HTMLMediaElement.h index 9923331f585..e666d7b1c19 100644 --- a/Libraries/LibWeb/HTML/HTMLMediaElement.h +++ b/Libraries/LibWeb/HTML/HTMLMediaElement.h @@ -57,6 +57,7 @@ public: NetworkState network_state() const { return m_network_state; } [[nodiscard]] GC::Ref buffered() const; + [[nodiscard]] GC::Ref played() const; static inline constexpr auto supported_video_subtypes = Array { "webm"sv, diff --git a/Libraries/LibWeb/HTML/HTMLMediaElement.idl b/Libraries/LibWeb/HTML/HTMLMediaElement.idl index e4d58c251c3..22bc813886d 100644 --- a/Libraries/LibWeb/HTML/HTMLMediaElement.idl +++ b/Libraries/LibWeb/HTML/HTMLMediaElement.idl @@ -62,7 +62,7 @@ interface HTMLMediaElement : HTMLElement { attribute double defaultPlaybackRate; attribute double playbackRate; [FIXME] attribute boolean preservesPitch; - [FIXME] readonly attribute TimeRanges played; + readonly attribute TimeRanges played; [FIXME] readonly attribute TimeRanges seekable; readonly attribute boolean ended; [Reflect, CEReactions] attribute boolean autoplay;