mirror of
https://github.com/RGBCube/serenity
synced 2025-05-22 18:55:07 +00:00

Note that as of this commit, there aren't any such throwers, and the call site in Heap::allocate will drop exceptions on the floor. This commit only serves to change the declaration of the overrides, make sure they return an empty value, and to propagate OOM errors frm their base initialize invocations.
45 lines
1.3 KiB
C++
45 lines
1.3 KiB
C++
/*
|
|
* Copyright (c) 2021, the SerenityOS developers.
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <LibWeb/DOM/Event.h>
|
|
|
|
namespace Web::XHR {
|
|
|
|
// FIXME: All the "u32"s should be "u64"s, however LibJS doesn't currently support constructing values with u64,
|
|
// and the IDL parser doesn't properly parse "unsigned long long".
|
|
|
|
struct ProgressEventInit : public DOM::EventInit {
|
|
bool length_computable { false };
|
|
u32 loaded { 0 };
|
|
u32 total { 0 };
|
|
};
|
|
|
|
class ProgressEvent final : public DOM::Event {
|
|
WEB_PLATFORM_OBJECT(ProgressEvent, DOM::Event);
|
|
|
|
public:
|
|
static ProgressEvent* create(JS::Realm&, DeprecatedFlyString const& event_name, ProgressEventInit const& event_init);
|
|
static ProgressEvent* construct_impl(JS::Realm&, DeprecatedFlyString const& event_name, ProgressEventInit const& event_init);
|
|
|
|
virtual ~ProgressEvent() override;
|
|
|
|
bool length_computable() const { return m_length_computable; }
|
|
u64 loaded() const { return m_loaded; }
|
|
u64 total() const { return m_total; }
|
|
|
|
private:
|
|
ProgressEvent(JS::Realm&, DeprecatedFlyString const& event_name, ProgressEventInit const& event_init);
|
|
|
|
virtual JS::ThrowCompletionOr<void> initialize(JS::Realm&) override;
|
|
|
|
bool m_length_computable { false };
|
|
u64 m_loaded { 0 };
|
|
u64 m_total { 0 };
|
|
};
|
|
|
|
}
|