1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-06-01 08:38:10 +00:00

LibWeb: Add event handler attributes to XMLHttpRequestEventTarget

This patch adds the following event handler attributes to XHR's
EventTarget base class:

- onloadstart
- onprogress
- onabort
- onerror
- onload
- ontimeout
- onloadend
This commit is contained in:
Andreas Kling 2021-09-19 01:41:55 +02:00
parent dc8707527f
commit 6b03d18d95
4 changed files with 107 additions and 0 deletions

View file

@ -250,6 +250,7 @@ set(SOURCES
WebContentClient.cpp
XHR/EventNames.cpp
XHR/XMLHttpRequest.cpp
XHR/XMLHttpRequestEventTarget.cpp
)
set(GENERATED_SOURCES

View file

@ -0,0 +1,83 @@
/*
* Copyright (c) 2021, Andreas Kling <kling@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#include <LibWeb/HTML/EventHandler.h>
#include <LibWeb/XHR/EventNames.h>
#include <LibWeb/XHR/XMLHttpRequestEventTarget.h>
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));
}
}

View file

@ -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)

View file

@ -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;
};