ladybird/Userland/Libraries/LibWeb/HTML/HTMLIFrameElement.h
Andreas Kling 6f433c8656 LibWeb+LibJS: Make the EventTarget hierarchy (incl. DOM) GC-allocated
This is a monster patch that turns all EventTargets into GC-allocated
PlatformObjects. Their C++ wrapper classes are removed, and the LibJS
garbage collector is now responsible for their lifetimes.

There's a fair amount of hacks and band-aids in this patch, and we'll
have a lot of cleanup to do after this.
2022-09-06 00:27:09 +02:00

35 lines
881 B
C++

/*
* Copyright (c) 2020-2021, Andreas Kling <kling@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <LibWeb/HTML/BrowsingContextContainer.h>
namespace Web::HTML {
class HTMLIFrameElement final : public BrowsingContextContainer {
WEB_PLATFORM_OBJECT(HTMLIFrameElement, BrowsingContextContainer);
public:
virtual ~HTMLIFrameElement() override;
virtual RefPtr<Layout::Node> create_layout_node(NonnullRefPtr<CSS::StyleProperties>) override;
private:
HTMLIFrameElement(DOM::Document&, DOM::QualifiedName);
virtual void inserted() override;
virtual void removed_from(Node*) override;
virtual void parse_attribute(FlyString const& name, String const& value) override;
void load_src(String const&);
};
void run_iframe_load_event_steps(HTML::HTMLIFrameElement&);
}
WRAPPER_HACK(HTMLIFrameElement, Web::HTML)