Fix for bug 135895 (XHTML <style> element not working). r=sicking, sr=jst.

This commit is contained in:
peterv%netscape.com 2002-04-12 13:24:32 +00:00
parent 906c01ba81
commit 4bea2ab35a
2 changed files with 22 additions and 20 deletions

View File

@ -353,6 +353,13 @@ nsHTMLStyleElement::GetStyleSheetURL(PRBool* aIsInline,
if (*aIsInline) {
return;
}
if (mNodeInfo->NamespaceEquals(kNameSpaceID_HTML)) {
// We stopped supporting <style src="..."> for XHTML as it is
// non-standard.
*aIsInline = PR_TRUE;
return;
}
char *buf;
GetHrefCString(buf);
if (buf) {

View File

@ -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;