Coverage Report

Created: 2026-05-16 07:03

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/serenity/Userland/Libraries/LibWeb/HTML/SelectedFile.h
Line
Count
Source
1
/*
2
 * Copyright (c) 2024, Tim Flynn <trflynn89@serenityos.org>
3
 *
4
 * SPDX-License-Identifier: BSD-2-Clause
5
 */
6
7
#pragma once
8
9
#include <AK/ByteBuffer.h>
10
#include <AK/ByteString.h>
11
#include <AK/Variant.h>
12
#include <LibIPC/File.h>
13
#include <LibIPC/Forward.h>
14
15
namespace Web::HTML {
16
17
enum class AllowMultipleFiles {
18
    No,
19
    Yes,
20
};
21
22
class SelectedFile {
23
public:
24
    static ErrorOr<SelectedFile> from_file_path(ByteString const& file_path);
25
26
    SelectedFile(ByteString name, ByteBuffer contents);
27
    SelectedFile(ByteString name, IPC::File file);
28
29
0
    ByteString const& name() const { return m_name; }
30
0
    auto const& file_or_contents() const { return m_file_or_contents; }
31
    ByteBuffer take_contents();
32
33
private:
34
    ByteString m_name;
35
    Variant<IPC::File, ByteBuffer> m_file_or_contents;
36
};
37
38
}
39
40
namespace IPC {
41
42
template<>
43
ErrorOr<void> encode(Encoder&, Web::HTML::SelectedFile const&);
44
45
template<>
46
ErrorOr<Web::HTML::SelectedFile> decode(Decoder&);
47
48
}