diff --git a/mozilla/content/html/document/src/nsHTMLContentSink.cpp b/mozilla/content/html/document/src/nsHTMLContentSink.cpp index f6795dbf058..cfc77d4eef2 100644 --- a/mozilla/content/html/document/src/nsHTMLContentSink.cpp +++ b/mozilla/content/html/document/src/nsHTMLContentSink.cpp @@ -2780,6 +2780,26 @@ HTMLContentSink::OpenFrameset(const nsIParserNode& aNode) MOZ_TIMER_DEBUGLOG(("Stop: nsHTMLContentSink::OpenFrameset()\n")); MOZ_TIMER_STOP(mWatch); + if (mFrameset && mCurrentContext->mStackPos > 1) { + // Have to notify for the frameset now, since we never actually + // close out , so won't notify for it then. + PRInt32 parentIndex = mCurrentContext->mStackPos - 2; + nsGenericHTMLElement *parent = mCurrentContext->mStack[parentIndex].mContent; + PRInt32 numFlushed = mCurrentContext->mStack[parentIndex].mNumFlushed; + PRInt32 insertionPoint = + mCurrentContext->mStack[parentIndex].mInsertionPoint; + + // XXX: I have yet to see a case where numFlushed is non-zero and + // insertionPoint is not -1, but this code will try to handle + // those cases too. + + if (insertionPoint != -1) { + NotifyInsert(parent, mFrameset, insertionPoint - 1); + } else { + NotifyAppend(parent, numFlushed); + } + } + return rv; }