mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-05-03 09:48:47 +00:00
LibWeb: Defer creation of subframes until host element is connected
This allows parsing of document fragments with "<iframe>" to construct the iframe element without requiring that the fragment have a frame.
This commit is contained in:
parent
57ead17d54
commit
5c67b2cb8f
Notes:
sideshowbarker
2024-07-18 20:51:47 +09:00
Author: https://github.com/awesomekling
Commit: 5c67b2cb8f
4 changed files with 22 additions and 2 deletions
|
@ -35,8 +35,6 @@ namespace Web::HTML {
|
|||
HTMLIFrameElement::HTMLIFrameElement(DOM::Document& document, QualifiedName qualified_name)
|
||||
: FrameHostElement(document, move(qualified_name))
|
||||
{
|
||||
VERIFY(document.frame());
|
||||
m_content_frame = Frame::create_subframe(*this, document.frame()->main_frame());
|
||||
}
|
||||
|
||||
HTMLIFrameElement::~HTMLIFrameElement()
|
||||
|
@ -56,8 +54,18 @@ void HTMLIFrameElement::parse_attribute(const FlyString& name, const String& val
|
|||
load_src(value);
|
||||
}
|
||||
|
||||
void HTMLIFrameElement::inserted_into(Node& parent)
|
||||
{
|
||||
FrameHostElement::inserted_into(parent);
|
||||
if (is_connected())
|
||||
load_src(attribute(HTML::AttributeNames::src));
|
||||
}
|
||||
|
||||
void HTMLIFrameElement::load_src(const String& value)
|
||||
{
|
||||
if (!m_content_frame)
|
||||
return;
|
||||
|
||||
auto url = document().complete_url(value);
|
||||
if (!url.is_valid()) {
|
||||
dbgln("iframe failed to load URL: Invalid URL: {}", value);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue