summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibWeb/HTML/MediaError.h
blob: 0b81f264b36e8b683b80d7e17f8085b1ac8dfdc1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/*
 * Copyright (c) 2023, Tim Flynn <trflynn89@serenityos.org>
 *
 * SPDX-License-Identifier: BSD-2-Clause
 */

#pragma once

#include <AK/String.h>
#include <LibJS/Forward.h>
#include <LibWeb/Bindings/PlatformObject.h>

namespace Web::HTML {

class MediaError final : public Bindings::PlatformObject {
    WEB_PLATFORM_OBJECT(MediaError, Bindings::PlatformObject);

public:
    enum class Code : u16 {
        Aborted = 1,
        Network = 2,
        Decode = 3,
        SrcNotSupported = 4,
    };

    Code code() const { return m_code; }
    String const& message() const { return m_message; }

private:
    MediaError(JS::Realm&, Code code, String message);

    virtual JS::ThrowCompletionOr<void> initialize(JS::Realm&) override;

    // https://html.spec.whatwg.org/multipage/media.html#dom-mediaerror-code
    Code m_code;

    // https://html.spec.whatwg.org/multipage/media.html#dom-mediaerror-message
    String m_message;
};

}