LibWeb: Add PopOverInvokerElement and use it in HTMLButtonElement

The popoverTargetElement seems to be one of the only cases of a
reflected Element? attribute in the HTML spec, the behaviour of which
is specified in section 2.6.1.

Buttons can't actually toggle popovers yet because showing/hiding
popovers is not implemented yet.
This commit is contained in:
Nathan van der Kamp 2024-11-23 23:06:06 +01:00 committed by Tim Ledbetter
parent 158acabd21
commit a276cf2d5e
Notes: github-actions[bot] 2024-12-12 17:12:26 +00:00
9 changed files with 97 additions and 2 deletions

View file

@ -9,6 +9,7 @@
#include <LibWeb/ARIA/Roles.h>
#include <LibWeb/HTML/FormAssociatedElement.h>
#include <LibWeb/HTML/HTMLElement.h>
#include <LibWeb/HTML/PopoverInvokerElement.h>
namespace Web::HTML {
@ -19,7 +20,8 @@ namespace Web::HTML {
class HTMLButtonElement final
: public HTMLElement
, public FormAssociatedElement {
, public FormAssociatedElement
, public PopoverInvokerElement {
WEB_PLATFORM_OBJECT(HTMLButtonElement, HTMLElement);
GC_DECLARE_ALLOCATOR(HTMLButtonElement);
FORM_ASSOCIATED_ELEMENT(HTMLElement, HTMLButtonElement)
@ -73,6 +75,8 @@ public:
virtual void activation_behavior(DOM::Event const&) override;
private:
virtual void visit_edges(Visitor&) override;
virtual bool is_html_button_element() const override { return true; }
HTMLButtonElement(DOM::Document&, DOM::QualifiedName);