diff --git a/Tests/LibWeb/Layout/expected/misc/create-iframes-using-innerhtml.txt b/Tests/LibWeb/Layout/expected/misc/create-iframes-using-innerhtml.txt new file mode 100644 index 0000000000..4a59fe8156 --- /dev/null +++ b/Tests/LibWeb/Layout/expected/misc/create-iframes-using-innerhtml.txt @@ -0,0 +1,41 @@ +Viewport <#document> at (0,0) content-size 800x600 children: not-inline + BlockContainer at (0,0) content-size 800x16 [BFC] children: not-inline + BlockContainer at (8,8) content-size 784x0 children: not-inline + BlockContainer at (8,8) content-size 784x0 children: not-inline + BlockContainer
at (8,8) content-size 1x1 positioned [BFC] children: inline + frag 0 from FrameBox start: 0, length: 0, rect: [18,18 10x10] baseline: 30 + frag 1 from FrameBox start: 0, length: 0, rect: [18,48 10x10] baseline: 30 + frag 2 from FrameBox start: 0, length: 0, rect: [18,78 10x10] baseline: 30 + frag 3 from FrameBox start: 0, length: 0, rect: [18,108 10x10] baseline: 30 + frag 4 from FrameBox start: 0, length: 0, rect: [18,138 10x10] baseline: 30 + frag 5 from FrameBox start: 0, length: 0, rect: [18,168 10x10] baseline: 30 + frag 6 from FrameBox start: 0, length: 0, rect: [18,198 10x10] baseline: 30 + frag 7 from FrameBox start: 0, length: 0, rect: [18,228 10x10] baseline: 30 + frag 8 from FrameBox start: 0, length: 0, rect: [18,258 10x10] baseline: 30 + frag 9 from FrameBox start: 0, length: 0, rect: [18,288 10x10] baseline: 30 + FrameBox ".repeat(10); + const topDiv = document.createElement("div"); + topDiv.style.position = "absolute"; + topDiv.style.height = "1px"; + topDiv.style.width = "1px"; + topDiv.innerHTML = manyIframes; + container.appendChild(topDiv); + \ No newline at end of file diff --git a/Userland/Libraries/LibWeb/Layout/FrameBox.cpp b/Userland/Libraries/LibWeb/Layout/FrameBox.cpp index 21a95c45f7..abe6ed85c5 100644 --- a/Userland/Libraries/LibWeb/Layout/FrameBox.cpp +++ b/Userland/Libraries/LibWeb/Layout/FrameBox.cpp @@ -5,7 +5,6 @@ */ #include -#include #include #include #include @@ -21,8 +20,6 @@ FrameBox::~FrameBox() = default; void FrameBox::prepare_for_replaced_layout() { - VERIFY(dom_node().nested_browsing_context()); - // FIXME: Do proper error checking, etc. set_natural_width(dom_node().get_attribute_value(HTML::AttributeNames::width).to_number().value_or(300)); set_natural_height(dom_node().get_attribute_value(HTML::AttributeNames::height).to_number().value_or(150)); @@ -32,8 +29,8 @@ void FrameBox::did_set_content_size() { ReplacedBox::did_set_content_size(); - VERIFY(dom_node().content_navigable()); - dom_node().content_navigable()->set_size(paintable_box()->content_size()); + if (dom_node().content_navigable()) + dom_node().content_navigable()->set_size(paintable_box()->content_size()); } JS::GCPtr FrameBox::create_paintable() const