There is a comment in HTMLFrameOwnerElement::willRemove() that says: // FIXME: It is unclear why this can't be moved to removedFromDocument() // this is the only implementation of willRemove in WebCore! If the contents of HTMLFrameOwnerElement::willRemove() were moved to HTMLFrameOwnerElement::removedFromDocument(), then bugs such as https://bugs.webkit.org/show_bug.cgi?id=55469 would not require strange DRT work-arounds. However, moving this tear-down to be later is not trivial as it causes other crashes in the tests. We should understand this better, and we should fix it.
See more analysis (and attempt at solutions) in bug 55209.