diff --git a/mozilla/content/html/document/src/nsHTMLContentSink.cpp b/mozilla/content/html/document/src/nsHTMLContentSink.cpp index 9a79a7e01c6..6f57cdb88ff 100644 --- a/mozilla/content/html/document/src/nsHTMLContentSink.cpp +++ b/mozilla/content/html/document/src/nsHTMLContentSink.cpp @@ -819,6 +819,11 @@ SinkContext::OpenContainer(const nsIParserNode& aNode) mStack[mStackPos].mContent = content; mStack[mStackPos].mFlags = 0; content->SetDocument(mSink->mDocument); + + nsIScriptContextOwner* sco = mSink->mDocument->GetScriptContextOwner(); + rv = AddAttributes(aNode, content, sco); + NS_IF_RELEASE(sco); + if (mPreAppend) { NS_ASSERTION(mStackPos > 0, "container w/o parent"); nsIHTMLContent* parent = mStack[mStackPos-1].mContent; @@ -826,14 +831,10 @@ SinkContext::OpenContainer(const nsIParserNode& aNode) mStack[mStackPos].mFlags |= APPENDED; } mStackPos++; - nsIScriptContextOwner* sco = mSink->mDocument->GetScriptContextOwner(); - rv = AddAttributes(aNode, content, sco); - NS_IF_RELEASE(sco); if (NS_OK != rv) { return rv; } - // Special handling for certain tags switch (nodeType) { case eHTMLTag_a: @@ -925,6 +926,10 @@ SinkContext::AddLeaf(const nsIParserNode& aNode) if (NS_OK != rv) { return rv; } + + // Set the content's document + content->SetDocument(mSink->mDocument); + nsIScriptContextOwner* sco = mSink->mDocument->GetScriptContextOwner(); rv = AddAttributes(aNode, content, sco); NS_IF_RELEASE(sco); @@ -1065,6 +1070,8 @@ SinkContext::FlushText(PRBool* aDidFlush) nsIHTMLContent* content; rv = NS_NewHTMLText(&content, mText, mTextLength); if (NS_OK == rv) { + // Set the content's document + content->SetDocument(mSink->mDocument); // Add text to its parent NS_ASSERTION(mStackPos > 0, "leaf w/o container"); nsIHTMLContent* parent = mStack[mStackPos - 1].mContent; diff --git a/mozilla/layout/html/document/src/nsHTMLContentSink.cpp b/mozilla/layout/html/document/src/nsHTMLContentSink.cpp index 9a79a7e01c6..6f57cdb88ff 100644 --- a/mozilla/layout/html/document/src/nsHTMLContentSink.cpp +++ b/mozilla/layout/html/document/src/nsHTMLContentSink.cpp @@ -819,6 +819,11 @@ SinkContext::OpenContainer(const nsIParserNode& aNode) mStack[mStackPos].mContent = content; mStack[mStackPos].mFlags = 0; content->SetDocument(mSink->mDocument); + + nsIScriptContextOwner* sco = mSink->mDocument->GetScriptContextOwner(); + rv = AddAttributes(aNode, content, sco); + NS_IF_RELEASE(sco); + if (mPreAppend) { NS_ASSERTION(mStackPos > 0, "container w/o parent"); nsIHTMLContent* parent = mStack[mStackPos-1].mContent; @@ -826,14 +831,10 @@ SinkContext::OpenContainer(const nsIParserNode& aNode) mStack[mStackPos].mFlags |= APPENDED; } mStackPos++; - nsIScriptContextOwner* sco = mSink->mDocument->GetScriptContextOwner(); - rv = AddAttributes(aNode, content, sco); - NS_IF_RELEASE(sco); if (NS_OK != rv) { return rv; } - // Special handling for certain tags switch (nodeType) { case eHTMLTag_a: @@ -925,6 +926,10 @@ SinkContext::AddLeaf(const nsIParserNode& aNode) if (NS_OK != rv) { return rv; } + + // Set the content's document + content->SetDocument(mSink->mDocument); + nsIScriptContextOwner* sco = mSink->mDocument->GetScriptContextOwner(); rv = AddAttributes(aNode, content, sco); NS_IF_RELEASE(sco); @@ -1065,6 +1070,8 @@ SinkContext::FlushText(PRBool* aDidFlush) nsIHTMLContent* content; rv = NS_NewHTMLText(&content, mText, mTextLength); if (NS_OK == rv) { + // Set the content's document + content->SetDocument(mSink->mDocument); // Add text to its parent NS_ASSERTION(mStackPos > 0, "leaf w/o container"); nsIHTMLContent* parent = mStack[mStackPos - 1].mContent;