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;