Coverage Report

Created: 2026-02-16 07:47

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/serenity/Userland/Libraries/LibWeb/HTML/TextTrack.h
Line
Count
Source
1
/*
2
 * Copyright (c) 2024, Jamie Mansfield <jmansfield@cadixdev.org>
3
 *
4
 * SPDX-License-Identifier: BSD-2-Clause
5
 */
6
7
#pragma once
8
9
#include <AK/String.h>
10
#include <LibJS/Forward.h>
11
#include <LibJS/Heap/GCPtr.h>
12
#include <LibWeb/Bindings/TextTrackPrototype.h>
13
#include <LibWeb/DOM/EventTarget.h>
14
#include <LibWeb/Forward.h>
15
#include <LibWeb/WebIDL/ExceptionOr.h>
16
17
namespace Web::HTML {
18
19
class TextTrack final : public DOM::EventTarget {
20
    WEB_PLATFORM_OBJECT(TextTrack, DOM::EventTarget);
21
    JS_DECLARE_ALLOCATOR(TextTrack);
22
23
public:
24
    // https://html.spec.whatwg.org/multipage/media.html#text-track-readiness-state
25
    enum class ReadinessState {
26
        NotLoaded,
27
        Loading,
28
        Loaded,
29
        FailedToLoad,
30
    };
31
32
    static JS::NonnullGCPtr<TextTrack> create(JS::Realm&);
33
    virtual ~TextTrack() override;
34
35
    Bindings::TextTrackKind kind();
36
    void set_kind(Bindings::TextTrackKind);
37
38
    String label();
39
    void set_label(String);
40
41
    String language();
42
    void set_language(String);
43
44
    String id();
45
    void set_id(String);
46
47
    Bindings::TextTrackMode mode();
48
    void set_mode(Bindings::TextTrackMode);
49
50
    void set_oncuechange(WebIDL::CallbackType*);
51
    WebIDL::CallbackType* oncuechange();
52
53
0
    ReadinessState readiness_state() { return m_readiness_state; }
54
0
    void set_readiness_state(ReadinessState readiness_state) { m_readiness_state = readiness_state; }
55
56
private:
57
    TextTrack(JS::Realm&);
58
59
    virtual void initialize(JS::Realm&) override;
60
61
    Bindings::TextTrackKind m_kind { Bindings::TextTrackKind::Subtitles };
62
    String m_label {};
63
    String m_language {};
64
65
    String m_id {};
66
67
    Bindings::TextTrackMode m_mode { Bindings::TextTrackMode::Disabled };
68
69
    ReadinessState m_readiness_state { ReadinessState::NotLoaded };
70
};
71
72
Bindings::TextTrackKind text_track_kind_from_string(String);
73
74
}