TEST(HTMLInputElementTest, NoAssertWhenMovedInNewDocument) { const RefPtrWillBeRawPtr<Document> documentWithoutFrame = Document::create(); EXPECT_EQ(nullptr, documentWithoutFrame->frameHost()); RefPtrWillBeRawPtr<HTMLHtmlElement> html = HTMLHtmlElement::create(*documentWithoutFrame); html->appendChild(HTMLBodyElement::create(*documentWithoutFrame)); // Create an input element with type "range" inside a document without frame. toHTMLBodyElement(html->firstChild())->setInnerHTML("<input type='range' />", ASSERT_NO_EXCEPTION); documentWithoutFrame->appendChild(html.release()); OwnPtr<DummyPageHolder> pageHolder = DummyPageHolder::create(); auto& document = pageHolder->document(); EXPECT_NE(nullptr, document.frameHost()); // Put the input element inside a document with frame. document.body()->appendChild(documentWithoutFrame->body()->firstChild()); // Remove the input element and all refs to it so it gets deleted before the document. // The assert in |EventHandlerRegistry::updateEventHandlerTargets()| should not be triggered. document.body()->removeChild(document.body()->firstChild()); }