From 954da8fde579b6111ffcc91884f9766a9a1ad634 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Mon, 19 Sep 2022 12:33:05 +0200 Subject: [PATCH] LibWeb: Only create iframe nested context if iframe document has context We had glossed over a condition in the spec that said we should only run the nested context creation steps when the iframe's own containing document has a browsing context. --- .../Libraries/LibWeb/HTML/HTMLIFrameElement.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Userland/Libraries/LibWeb/HTML/HTMLIFrameElement.cpp b/Userland/Libraries/LibWeb/HTML/HTMLIFrameElement.cpp index ef3f3e2a6cdcd6..5d5d0eae12546d 100644 --- a/Userland/Libraries/LibWeb/HTML/HTMLIFrameElement.cpp +++ b/Userland/Libraries/LibWeb/HTML/HTMLIFrameElement.cpp @@ -38,16 +38,16 @@ void HTMLIFrameElement::inserted() { HTMLElement::inserted(); - if (!is_connected()) - return; - - // 1. Create a new nested browsing context for element. - create_new_nested_browsing_context(); + // When an iframe element element is inserted into a document whose browsing context is non-null, the user agent must run these steps: + if (document().browsing_context()) { + // 1. Create a new nested browsing context for element. + create_new_nested_browsing_context(); - // FIXME: 2. If element has a sandbox attribute, then parse the sandboxing directive given the attribute's value and element's iframe sandboxing flag set. + // FIXME: 2. If element has a sandbox attribute, then parse the sandboxing directive given the attribute's value and element's iframe sandboxing flag set. - // 3. Process the iframe attributes for element, with initialInsertion set to true. - load_src(attribute(HTML::AttributeNames::src)); + // 3. Process the iframe attributes for element, with initialInsertion set to true. + load_src(attribute(HTML::AttributeNames::src)); + } } // https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-iframe-element:the-iframe-element-7