mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 22:07:35 +00:00
LibWeb: Stub out the HTML TimeRanges IDL interface
This is used by media elements. Provide a stub for websites which depend on the interface existing.
This commit is contained in:
parent
6f47c53ff9
commit
680a9f748e
6 changed files with 88 additions and 0 deletions
|
@ -346,6 +346,7 @@ set(SOURCES
|
|||
HTML/TagNames.cpp
|
||||
HTML/TextMetrics.cpp
|
||||
HTML/Timer.cpp
|
||||
HTML/TimeRanges.cpp
|
||||
HTML/TrackEvent.cpp
|
||||
HTML/VideoTrack.cpp
|
||||
HTML/VideoTrackList.cpp
|
||||
|
|
|
@ -381,6 +381,7 @@ class Storage;
|
|||
class SubmitEvent;
|
||||
class TextMetrics;
|
||||
class Timer;
|
||||
class TimeRanges;
|
||||
class TrackEvent;
|
||||
class VideoTrack;
|
||||
class VideoTrackList;
|
||||
|
|
50
Userland/Libraries/LibWeb/HTML/TimeRanges.cpp
Normal file
50
Userland/Libraries/LibWeb/HTML/TimeRanges.cpp
Normal file
|
@ -0,0 +1,50 @@
|
|||
/*
|
||||
* Copyright (c) 2023, Tim Flynn <trflynn89@serenityos.org>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#include <LibJS/Runtime/Realm.h>
|
||||
#include <LibWeb/Bindings/Intrinsics.h>
|
||||
#include <LibWeb/Bindings/TimeRangesPrototype.h>
|
||||
#include <LibWeb/HTML/TimeRanges.h>
|
||||
|
||||
namespace Web::HTML {
|
||||
|
||||
TimeRanges::TimeRanges(JS::Realm& realm)
|
||||
: Base(realm)
|
||||
{
|
||||
}
|
||||
|
||||
JS::ThrowCompletionOr<void> TimeRanges::initialize(JS::Realm& realm)
|
||||
{
|
||||
MUST_OR_THROW_OOM(Base::initialize(realm));
|
||||
set_prototype(&Bindings::ensure_web_prototype<Bindings::TimeRangesPrototype>(realm, "TimeRanges"));
|
||||
|
||||
return {};
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/media.html#dom-timeranges-length
|
||||
size_t TimeRanges::length() const
|
||||
{
|
||||
// FIXME: The length IDL attribute must return the number of ranges represented by the object.
|
||||
return 0;
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/media.html#dom-timeranges-start
|
||||
double TimeRanges::start(u32) const
|
||||
{
|
||||
// FIXME: The start(index) method must return the position of the start of the indexth range represented by the object,
|
||||
// in seconds measured from the start of the timeline that the object covers.
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/media.html#dom-timeranges-end
|
||||
double TimeRanges::end(u32) const
|
||||
{
|
||||
// FIXME: The end(index) method must return the position of the end of the indexth range represented by the object,
|
||||
// in seconds measured from the start of the timeline that the object covers.
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
}
|
28
Userland/Libraries/LibWeb/HTML/TimeRanges.h
Normal file
28
Userland/Libraries/LibWeb/HTML/TimeRanges.h
Normal file
|
@ -0,0 +1,28 @@
|
|||
/*
|
||||
* Copyright (c) 2023, Tim Flynn <trflynn89@serenityos.org>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <LibJS/Forward.h>
|
||||
#include <LibWeb/Bindings/PlatformObject.h>
|
||||
|
||||
namespace Web::HTML {
|
||||
|
||||
class TimeRanges final : public Bindings::PlatformObject {
|
||||
WEB_PLATFORM_OBJECT(TimeRanges, Bindings::PlatformObject);
|
||||
|
||||
public:
|
||||
size_t length() const;
|
||||
double start(u32 index) const;
|
||||
double end(u32 index) const;
|
||||
|
||||
private:
|
||||
explicit TimeRanges(JS::Realm&);
|
||||
|
||||
virtual JS::ThrowCompletionOr<void> initialize(JS::Realm&) override;
|
||||
};
|
||||
|
||||
}
|
7
Userland/Libraries/LibWeb/HTML/TimeRanges.idl
Normal file
7
Userland/Libraries/LibWeb/HTML/TimeRanges.idl
Normal file
|
@ -0,0 +1,7 @@
|
|||
// https://html.spec.whatwg.org/multipage/media.html#timeranges
|
||||
[Exposed=Window]
|
||||
interface TimeRanges {
|
||||
readonly attribute unsigned long length;
|
||||
double start(unsigned long index);
|
||||
double end(unsigned long index);
|
||||
};
|
|
@ -165,6 +165,7 @@ libweb_js_bindings(HTML/PromiseRejectionEvent)
|
|||
libweb_js_bindings(HTML/Storage)
|
||||
libweb_js_bindings(HTML/SubmitEvent)
|
||||
libweb_js_bindings(HTML/TextMetrics)
|
||||
libweb_js_bindings(HTML/TimeRanges)
|
||||
libweb_js_bindings(HTML/TrackEvent)
|
||||
libweb_js_bindings(HTML/VideoTrack)
|
||||
libweb_js_bindings(HTML/VideoTrackList)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue