зеркало из https://github.com/mozilla/pjs.git
Fix for bug 135895 (XHTML <style> element not working). r=sicking, sr=jst.
This commit is contained in:
Родитель
fa73dd301c
Коммит
fcc1fee61b
|
@ -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) {
|
||||
|
|
|
@ -1660,16 +1660,9 @@ 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);
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
|
|
Загрузка…
Ссылка в новой задаче