diff --git a/Userland/Libraries/LibWeb/CMakeLists.txt b/Userland/Libraries/LibWeb/CMakeLists.txt index e137fed6c1..737f925e1c 100644 --- a/Userland/Libraries/LibWeb/CMakeLists.txt +++ b/Userland/Libraries/LibWeb/CMakeLists.txt @@ -250,6 +250,7 @@ set(SOURCES WebContentClient.cpp XHR/EventNames.cpp XHR/XMLHttpRequest.cpp + XHR/XMLHttpRequestEventTarget.cpp ) set(GENERATED_SOURCES diff --git a/Userland/Libraries/LibWeb/XHR/XMLHttpRequestEventTarget.cpp b/Userland/Libraries/LibWeb/XHR/XMLHttpRequestEventTarget.cpp new file mode 100644 index 0000000000..fcd03c2112 --- /dev/null +++ b/Userland/Libraries/LibWeb/XHR/XMLHttpRequestEventTarget.cpp @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2021, Andreas Kling + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#include +#include +#include + +namespace Web::XHR { + +HTML::EventHandler XMLHttpRequestEventTarget::onabort() +{ + return event_handler_attribute(Web::XHR::EventNames::abort); +} + +void XMLHttpRequestEventTarget::set_onabort(HTML::EventHandler value) +{ + set_event_handler_attribute(Web::XHR::EventNames::abort, move(value)); +} + +HTML::EventHandler XMLHttpRequestEventTarget::onloadstart() +{ + return event_handler_attribute(Web::XHR::EventNames::loadstart); +} + +void XMLHttpRequestEventTarget::set_onloadstart(HTML::EventHandler value) +{ + set_event_handler_attribute(Web::XHR::EventNames::loadstart, move(value)); +} + +HTML::EventHandler XMLHttpRequestEventTarget::onloadend() +{ + return event_handler_attribute(Web::XHR::EventNames::loadend); +} + +void XMLHttpRequestEventTarget::set_onloadend(HTML::EventHandler value) +{ + set_event_handler_attribute(Web::XHR::EventNames::loadend, move(value)); +} + +HTML::EventHandler XMLHttpRequestEventTarget::onprogress() +{ + return event_handler_attribute(Web::XHR::EventNames::progress); +} + +void XMLHttpRequestEventTarget::set_onprogress(HTML::EventHandler value) +{ + set_event_handler_attribute(Web::XHR::EventNames::progress, move(value)); +} + +HTML::EventHandler XMLHttpRequestEventTarget::onerror() +{ + return event_handler_attribute(Web::XHR::EventNames::error); +} + +void XMLHttpRequestEventTarget::set_onerror(HTML::EventHandler value) +{ + set_event_handler_attribute(Web::XHR::EventNames::error, move(value)); +} + +HTML::EventHandler XMLHttpRequestEventTarget::onload() +{ + return event_handler_attribute(Web::XHR::EventNames::load); +} + +void XMLHttpRequestEventTarget::set_onload(HTML::EventHandler value) +{ + set_event_handler_attribute(Web::XHR::EventNames::load, move(value)); +} + +HTML::EventHandler XMLHttpRequestEventTarget::ontimeout() +{ + return event_handler_attribute(Web::XHR::EventNames::timeout); +} + +void XMLHttpRequestEventTarget::set_ontimeout(HTML::EventHandler value) +{ + set_event_handler_attribute(Web::XHR::EventNames::timeout, move(value)); +} + +} diff --git a/Userland/Libraries/LibWeb/XHR/XMLHttpRequestEventTarget.h b/Userland/Libraries/LibWeb/XHR/XMLHttpRequestEventTarget.h index 7a8e347469..5e4a063528 100644 --- a/Userland/Libraries/LibWeb/XHR/XMLHttpRequestEventTarget.h +++ b/Userland/Libraries/LibWeb/XHR/XMLHttpRequestEventTarget.h @@ -20,6 +20,21 @@ public: virtual ~XMLHttpRequestEventTarget() override {}; + HTML::EventHandler onloadstart(); + void set_onloadstart(HTML::EventHandler); + HTML::EventHandler onprogress(); + void set_onprogress(HTML::EventHandler); + HTML::EventHandler onabort(); + void set_onabort(HTML::EventHandler); + HTML::EventHandler onerror(); + void set_onerror(HTML::EventHandler); + HTML::EventHandler onload(); + void set_onload(HTML::EventHandler); + HTML::EventHandler ontimeout(); + void set_ontimeout(HTML::EventHandler); + HTML::EventHandler onloadend(); + void set_onloadend(HTML::EventHandler); + protected: explicit XMLHttpRequestEventTarget(Bindings::ScriptExecutionContext& script_execution_context) : DOM::EventTarget(script_execution_context) diff --git a/Userland/Libraries/LibWeb/XHR/XMLHttpRequestEventTarget.idl b/Userland/Libraries/LibWeb/XHR/XMLHttpRequestEventTarget.idl index 658f1ca2ee..ed61c70bae 100644 --- a/Userland/Libraries/LibWeb/XHR/XMLHttpRequestEventTarget.idl +++ b/Userland/Libraries/LibWeb/XHR/XMLHttpRequestEventTarget.idl @@ -1,3 +1,11 @@ interface XMLHttpRequestEventTarget : EventTarget { + attribute EventHandler onloadstart; + attribute EventHandler onprogress; + attribute EventHandler onabort; + attribute EventHandler onerror; + attribute EventHandler onload; + attribute EventHandler ontimeout; + attribute EventHandler onloadend; + };