diff --git a/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.cpp b/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.cpp index b567b151c9..c483bab47c 100644 --- a/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.cpp +++ b/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.cpp @@ -208,6 +208,13 @@ void HTMLMediaElement::set_current_time(double current_time) } } +// https://html.spec.whatwg.org/multipage/media.html#dom-media-fastseek +void HTMLMediaElement::fast_seek(double time) +{ + // The fastSeek(time) method must seek to the time given by time, with the approximate-for-speed flag set. + seek_element(time, MediaSeekMode::ApproximateForSpeed); +} + // https://html.spec.whatwg.org/multipage/media.html#playing-the-media-resource:current-playback-position-13 void HTMLMediaElement::set_current_playback_position(double playback_position) { diff --git a/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.h b/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.h index 66017a8f9f..4c262f6c68 100644 --- a/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.h +++ b/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.h @@ -66,6 +66,7 @@ public: double current_time() const; void set_current_time(double); + void fast_seek(double); double current_playback_position() const { return m_current_playback_position; } void set_current_playback_position(double); diff --git a/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.idl b/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.idl index d2cf8e8350..9c65ac5a7e 100644 --- a/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.idl +++ b/Userland/Libraries/LibWeb/HTML/HTMLMediaElement.idl @@ -40,6 +40,7 @@ interface HTMLMediaElement : HTMLElement { // playback state attribute double currentTime; + undefined fastSeek(double time); readonly attribute unrestricted double duration; readonly attribute boolean paused; readonly attribute boolean ended;