diff --git a/Userland/Libraries/LibWeb/XHR/XMLHttpRequest.cpp b/Userland/Libraries/LibWeb/XHR/XMLHttpRequest.cpp index 339e11b0ad..172aaa8d00 100644 --- a/Userland/Libraries/LibWeb/XHR/XMLHttpRequest.cpp +++ b/Userland/Libraries/LibWeb/XHR/XMLHttpRequest.cpp @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include @@ -260,4 +261,14 @@ JS::Object* XMLHttpRequest::create_wrapper(JS::GlobalObject& global_object) return wrap(global_object, *this); } +HTML::EventHandler XMLHttpRequest::onreadystatechange() +{ + return event_handler_attribute(Web::XHR::EventNames::readystatechange); +} + +void XMLHttpRequest::set_onreadystatechange(HTML::EventHandler value) +{ + set_event_handler_attribute(Web::XHR::EventNames::readystatechange, move(value)); +} + } diff --git a/Userland/Libraries/LibWeb/XHR/XMLHttpRequest.h b/Userland/Libraries/LibWeb/XHR/XMLHttpRequest.h index a7f78a8c65..3449ce8c36 100644 --- a/Userland/Libraries/LibWeb/XHR/XMLHttpRequest.h +++ b/Userland/Libraries/LibWeb/XHR/XMLHttpRequest.h @@ -58,6 +58,9 @@ public: String get_response_header(const String& name) { return m_response_headers.get(name).value_or({}); } + HTML::EventHandler onreadystatechange(); + void set_onreadystatechange(HTML::EventHandler); + private: virtual void ref_event_target() override { ref(); } virtual void unref_event_target() override { unref(); } diff --git a/Userland/Libraries/LibWeb/XHR/XMLHttpRequest.idl b/Userland/Libraries/LibWeb/XHR/XMLHttpRequest.idl index 21ae7a5a54..39298e278a 100644 --- a/Userland/Libraries/LibWeb/XHR/XMLHttpRequest.idl +++ b/Userland/Libraries/LibWeb/XHR/XMLHttpRequest.idl @@ -18,4 +18,6 @@ interface XMLHttpRequest : XMLHttpRequestEventTarget { ByteString? getResponseHeader(ByteString name); + attribute EventHandler onreadystatechange; + };