Fix for bug 135895 (XHTML <style> element not working). r=sicking, sr=jst.
git-svn-id: svn://10.0.0.236/trunk@118851 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -1660,15 +1660,8 @@ nsXMLContentSink::HandleStartElement(const PRUnichar *aName,
|
||||
nsCOMPtr<nsIStyleSheetLinkingElement> ssle(do_QueryInterface(content));
|
||||
|
||||
if (ssle) {
|
||||
// We stopped supporting <style src="..."> for XHTML as it is
|
||||
// non-standard.
|
||||
if (isHTML && tagAtom.get() == nsHTMLAtoms::style) {
|
||||
ssle->InitStyleLinkElement(nsnull, PR_TRUE);
|
||||
}
|
||||
else {
|
||||
ssle->InitStyleLinkElement(mParser, PR_FALSE);
|
||||
ssle->SetEnableUpdates(PR_FALSE);
|
||||
}
|
||||
ssle->InitStyleLinkElement(mParser, PR_FALSE);
|
||||
ssle->SetEnableUpdates(PR_FALSE);
|
||||
}
|
||||
|
||||
content->SetDocument(mDocument, PR_FALSE, PR_TRUE);
|
||||
@@ -1703,17 +1696,6 @@ nsXMLContentSink::HandleStartElement(const PRUnichar *aName,
|
||||
result = nodeInfo->SetIDAttributeAtom(IDAttr);
|
||||
}
|
||||
}
|
||||
|
||||
if (ssle) {
|
||||
ssle->SetEnableUpdates(PR_TRUE);
|
||||
result = ssle->UpdateStyleSheet(nsnull, mStyleSheetCount);
|
||||
if (NS_SUCCEEDED(result) || (result == NS_ERROR_HTMLPARSER_BLOCK)) {
|
||||
if (result == NS_ERROR_HTMLPARSER_BLOCK && mParser) {
|
||||
mParser->BlockParser();
|
||||
}
|
||||
mStyleSheetCount++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
@@ -1786,6 +1768,19 @@ nsXMLContentSink::HandleEndElement(const PRUnichar *aName)
|
||||
nsINameSpace* nameSpace = PopNameSpaces();
|
||||
NS_IF_RELEASE(nameSpace);
|
||||
|
||||
nsCOMPtr<nsIStyleSheetLinkingElement> ssle(do_QueryInterface(content));
|
||||
|
||||
if (ssle) {
|
||||
ssle->SetEnableUpdates(PR_TRUE);
|
||||
result = ssle->UpdateStyleSheet(nsnull, mStyleSheetCount);
|
||||
if (NS_SUCCEEDED(result) || (result == NS_ERROR_HTMLPARSER_BLOCK)) {
|
||||
if (result == NS_ERROR_HTMLPARSER_BLOCK && mParser) {
|
||||
mParser->BlockParser();
|
||||
}
|
||||
mStyleSheetCount++;
|
||||
}
|
||||
}
|
||||
|
||||
if (mNeedToBlockParser || (mParser && !mParser->IsParserEnabled())) {
|
||||
if (mParser) mParser->BlockParser();
|
||||
result = NS_ERROR_HTMLPARSER_BLOCK;
|
||||
|
||||
Reference in New Issue
Block a user