зеркало из https://github.com/mozilla/gecko-dev.git
More comprehensive fix for HTML nodes in XHTML namespace (bug 468708)
This commit is contained in:
Родитель
aeb7393726
Коммит
0f8172224f
|
@ -152,7 +152,7 @@ NS_NewHTMLOptionElement(nsINodeInfo *aNodeInfo, PRBool aFromParser)
|
||||||
NS_ENSURE_TRUE(doc, nsnull);
|
NS_ENSURE_TRUE(doc, nsnull);
|
||||||
|
|
||||||
nodeInfo = doc->NodeInfoManager()->GetNodeInfo(nsGkAtoms::option, nsnull,
|
nodeInfo = doc->NodeInfoManager()->GetNodeInfo(nsGkAtoms::option, nsnull,
|
||||||
kNameSpaceID_None);
|
kNameSpaceID_XHTML);
|
||||||
NS_ENSURE_TRUE(nodeInfo, nsnull);
|
NS_ENSURE_TRUE(nodeInfo, nsnull);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -319,7 +319,8 @@ nsHTMLStyleElement::GetStyleSheetURL(PRBool* aIsInline,
|
||||||
if (*aIsInline) {
|
if (*aIsInline) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (mNodeInfo->NamespaceEquals(kNameSpaceID_XHTML)) {
|
if (GetOwnerDoc() && // XXX clean up after bug 335998 lands
|
||||||
|
!(GetOwnerDoc()->IsCaseSensitive())) {
|
||||||
// We stopped supporting <style src="..."> for XHTML as it is
|
// We stopped supporting <style src="..."> for XHTML as it is
|
||||||
// non-standard.
|
// non-standard.
|
||||||
*aIsInline = PR_TRUE;
|
*aIsInline = PR_TRUE;
|
||||||
|
|
|
@ -250,7 +250,7 @@ nsHTMLTableRowElement::GetCells(nsIDOMHTMLCollection** aValue)
|
||||||
nsnull, // closure data
|
nsnull, // closure data
|
||||||
PR_FALSE,
|
PR_FALSE,
|
||||||
nsnull,
|
nsnull,
|
||||||
kNameSpaceID_None,
|
kNameSpaceID_XHTML,
|
||||||
PR_FALSE);
|
PR_FALSE);
|
||||||
|
|
||||||
NS_ENSURE_TRUE(mCells, NS_ERROR_OUT_OF_MEMORY);
|
NS_ENSURE_TRUE(mCells, NS_ERROR_OUT_OF_MEMORY);
|
||||||
|
|
|
@ -419,7 +419,7 @@ nsHTMLFragmentContentSink::OpenContainer(const nsIParserNode& aNode)
|
||||||
ToLowerCase(tmp);
|
ToLowerCase(tmp);
|
||||||
|
|
||||||
nsCOMPtr<nsIAtom> name = do_GetAtom(tmp);
|
nsCOMPtr<nsIAtom> name = do_GetAtom(tmp);
|
||||||
nodeInfo = mNodeInfoManager->GetNodeInfo(name, nsnull, kNameSpaceID_None);
|
nodeInfo = mNodeInfoManager->GetNodeInfo(name, nsnull, kNameSpaceID_XHTML);
|
||||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||||
}
|
}
|
||||||
else if (mNodeInfoCache[nodeType]) {
|
else if (mNodeInfoCache[nodeType]) {
|
||||||
|
@ -433,7 +433,7 @@ nsHTMLFragmentContentSink::OpenContainer(const nsIParserNode& aNode)
|
||||||
nsIAtom *name = parserService->HTMLIdToAtomTag(nodeType);
|
nsIAtom *name = parserService->HTMLIdToAtomTag(nodeType);
|
||||||
NS_ASSERTION(name, "This should not happen!");
|
NS_ASSERTION(name, "This should not happen!");
|
||||||
|
|
||||||
nodeInfo = mNodeInfoManager->GetNodeInfo(name, nsnull, kNameSpaceID_None);
|
nodeInfo = mNodeInfoManager->GetNodeInfo(name, nsnull, kNameSpaceID_XHTML);
|
||||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||||
|
|
||||||
NS_ADDREF(mNodeInfoCache[nodeType] = nodeInfo);
|
NS_ADDREF(mNodeInfoCache[nodeType] = nodeInfo);
|
||||||
|
@ -521,7 +521,7 @@ nsHTMLFragmentContentSink::AddLeaf(const nsIParserNode& aNode)
|
||||||
|
|
||||||
nsCOMPtr<nsIAtom> name = do_GetAtom(tmp);
|
nsCOMPtr<nsIAtom> name = do_GetAtom(tmp);
|
||||||
nodeInfo = mNodeInfoManager->GetNodeInfo(name, nsnull,
|
nodeInfo = mNodeInfoManager->GetNodeInfo(name, nsnull,
|
||||||
kNameSpaceID_None);
|
kNameSpaceID_XHTML);
|
||||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||||
}
|
}
|
||||||
else if (mNodeInfoCache[nodeType]) {
|
else if (mNodeInfoCache[nodeType]) {
|
||||||
|
@ -532,7 +532,7 @@ nsHTMLFragmentContentSink::AddLeaf(const nsIParserNode& aNode)
|
||||||
NS_ASSERTION(name, "This should not happen!");
|
NS_ASSERTION(name, "This should not happen!");
|
||||||
|
|
||||||
nodeInfo = mNodeInfoManager->GetNodeInfo(name, nsnull,
|
nodeInfo = mNodeInfoManager->GetNodeInfo(name, nsnull,
|
||||||
kNameSpaceID_None);
|
kNameSpaceID_XHTML);
|
||||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||||
NS_ADDREF(mNodeInfoCache[nodeType] = nodeInfo);
|
NS_ADDREF(mNodeInfoCache[nodeType] = nodeInfo);
|
||||||
}
|
}
|
||||||
|
@ -1011,7 +1011,7 @@ nsHTMLParanoidFragmentSink::NameFromNode(const nsIParserNode& aNode,
|
||||||
nsCOMPtr<nsINodeInfo> nodeInfo;
|
nsCOMPtr<nsINodeInfo> nodeInfo;
|
||||||
rv =
|
rv =
|
||||||
mNodeInfoManager->GetNodeInfo(aNode.GetText(), nsnull,
|
mNodeInfoManager->GetNodeInfo(aNode.GetText(), nsnull,
|
||||||
kNameSpaceID_None,
|
kNameSpaceID_XHTML,
|
||||||
getter_AddRefs(nodeInfo));
|
getter_AddRefs(nodeInfo));
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
NS_IF_ADDREF(*aResult = nodeInfo->NameAtom());
|
NS_IF_ADDREF(*aResult = nodeInfo->NameAtom());
|
||||||
|
|
|
@ -631,7 +631,7 @@ nsImageDocument::CreateSyntheticDocument()
|
||||||
|
|
||||||
nsCOMPtr<nsINodeInfo> nodeInfo;
|
nsCOMPtr<nsINodeInfo> nodeInfo;
|
||||||
nodeInfo = mNodeInfoManager->GetNodeInfo(nsGkAtoms::img, nsnull,
|
nodeInfo = mNodeInfoManager->GetNodeInfo(nsGkAtoms::img, nsnull,
|
||||||
kNameSpaceID_None);
|
kNameSpaceID_XHTML);
|
||||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||||
|
|
||||||
mImageContent = NS_NewHTMLImageElement(nodeInfo);
|
mImageContent = NS_NewHTMLImageElement(nodeInfo);
|
||||||
|
|
|
@ -234,7 +234,7 @@ nsMediaDocument::CreateSyntheticDocument()
|
||||||
|
|
||||||
nsCOMPtr<nsINodeInfo> nodeInfo;
|
nsCOMPtr<nsINodeInfo> nodeInfo;
|
||||||
nodeInfo = mNodeInfoManager->GetNodeInfo(nsGkAtoms::html, nsnull,
|
nodeInfo = mNodeInfoManager->GetNodeInfo(nsGkAtoms::html, nsnull,
|
||||||
kNameSpaceID_None);
|
kNameSpaceID_XHTML);
|
||||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||||
|
|
||||||
nsRefPtr<nsGenericHTMLElement> root = NS_NewHTMLHtmlElement(nodeInfo);
|
nsRefPtr<nsGenericHTMLElement> root = NS_NewHTMLHtmlElement(nodeInfo);
|
||||||
|
@ -247,7 +247,7 @@ nsMediaDocument::CreateSyntheticDocument()
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
|
||||||
nodeInfo = mNodeInfoManager->GetNodeInfo(nsGkAtoms::head, nsnull,
|
nodeInfo = mNodeInfoManager->GetNodeInfo(nsGkAtoms::head, nsnull,
|
||||||
kNameSpaceID_None);
|
kNameSpaceID_XHTML);
|
||||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||||
|
|
||||||
// Create a <head> so our title has somewhere to live
|
// Create a <head> so our title has somewhere to live
|
||||||
|
@ -259,7 +259,7 @@ nsMediaDocument::CreateSyntheticDocument()
|
||||||
root->AppendChildTo(head, PR_FALSE);
|
root->AppendChildTo(head, PR_FALSE);
|
||||||
|
|
||||||
nodeInfo = mNodeInfoManager->GetNodeInfo(nsGkAtoms::body, nsnull,
|
nodeInfo = mNodeInfoManager->GetNodeInfo(nsGkAtoms::body, nsnull,
|
||||||
kNameSpaceID_None);
|
kNameSpaceID_XHTML);
|
||||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||||
|
|
||||||
nsRefPtr<nsGenericHTMLElement> body = NS_NewHTMLBodyElement(nodeInfo);
|
nsRefPtr<nsGenericHTMLElement> body = NS_NewHTMLBodyElement(nodeInfo);
|
||||||
|
|
|
@ -108,7 +108,7 @@ nsVideoDocument::CreateSyntheticVideoDocument(nsIChannel* aChannel,
|
||||||
// make content
|
// make content
|
||||||
nsCOMPtr<nsINodeInfo> nodeInfo;
|
nsCOMPtr<nsINodeInfo> nodeInfo;
|
||||||
nodeInfo = mNodeInfoManager->GetNodeInfo(nsGkAtoms::video, nsnull,
|
nodeInfo = mNodeInfoManager->GetNodeInfo(nsGkAtoms::video, nsnull,
|
||||||
kNameSpaceID_None);
|
kNameSpaceID_XHTML);
|
||||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_FAILURE);
|
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_FAILURE);
|
||||||
|
|
||||||
nsRefPtr<nsHTMLMediaElement> element =
|
nsRefPtr<nsHTMLMediaElement> element =
|
||||||
|
|
|
@ -453,11 +453,10 @@ txMozillaXMLOutput::startElement(nsIAtom* aPrefix, nsIAtom* aLocalName,
|
||||||
|
|
||||||
aLowercaseLocalName = owner;
|
aLowercaseLocalName = owner;
|
||||||
}
|
}
|
||||||
return startElementInternal(nsnull, aLowercaseLocalName,
|
return startElementInternal(nsnull, aLowercaseLocalName, kNameSpaceID_XHTML);
|
||||||
kNameSpaceID_None, kNameSpaceID_XHTML);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return startElementInternal(aPrefix, aLocalName, aNsID, aNsID);
|
return startElementInternal(aPrefix, aLocalName, aNsID);
|
||||||
}
|
}
|
||||||
|
|
||||||
nsresult
|
nsresult
|
||||||
|
@ -465,11 +464,11 @@ txMozillaXMLOutput::startElement(nsIAtom* aPrefix,
|
||||||
const nsSubstring& aLocalName,
|
const nsSubstring& aLocalName,
|
||||||
const PRInt32 aNsID)
|
const PRInt32 aNsID)
|
||||||
{
|
{
|
||||||
PRInt32 elemType = aNsID;
|
PRInt32 nsId = aNsID;
|
||||||
nsCOMPtr<nsIAtom> lname;
|
nsCOMPtr<nsIAtom> lname;
|
||||||
|
|
||||||
if (mOutputFormat.mMethod == eHTMLOutput && aNsID == kNameSpaceID_None) {
|
if (mOutputFormat.mMethod == eHTMLOutput && aNsID == kNameSpaceID_None) {
|
||||||
elemType = kNameSpaceID_XHTML;
|
nsId = kNameSpaceID_XHTML;
|
||||||
|
|
||||||
nsAutoString lnameStr;
|
nsAutoString lnameStr;
|
||||||
ToLowerCase(aLocalName, lnameStr);
|
ToLowerCase(aLocalName, lnameStr);
|
||||||
|
@ -483,22 +482,21 @@ txMozillaXMLOutput::startElement(nsIAtom* aPrefix,
|
||||||
NS_ENSURE_TRUE(lname, NS_ERROR_OUT_OF_MEMORY);
|
NS_ENSURE_TRUE(lname, NS_ERROR_OUT_OF_MEMORY);
|
||||||
|
|
||||||
// Check that it's a valid name
|
// Check that it's a valid name
|
||||||
if (!nsContentUtils::IsValidNodeName(lname, aPrefix, aNsID)) {
|
if (!nsContentUtils::IsValidNodeName(lname, aPrefix, nsId)) {
|
||||||
// Try without prefix
|
// Try without prefix
|
||||||
aPrefix = nsnull;
|
aPrefix = nsnull;
|
||||||
if (!nsContentUtils::IsValidNodeName(lname, aPrefix, aNsID)) {
|
if (!nsContentUtils::IsValidNodeName(lname, aPrefix, nsId)) {
|
||||||
return NS_ERROR_XSLT_BAD_NODE_NAME;
|
return NS_ERROR_XSLT_BAD_NODE_NAME;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return startElementInternal(aPrefix, lname, aNsID, elemType);
|
return startElementInternal(aPrefix, lname, nsId);
|
||||||
}
|
}
|
||||||
|
|
||||||
nsresult
|
nsresult
|
||||||
txMozillaXMLOutput::startElementInternal(nsIAtom* aPrefix,
|
txMozillaXMLOutput::startElementInternal(nsIAtom* aPrefix,
|
||||||
nsIAtom* aLocalName,
|
nsIAtom* aLocalName,
|
||||||
PRInt32 aNsID,
|
PRInt32 aNsID)
|
||||||
PRInt32 aElemType)
|
|
||||||
{
|
{
|
||||||
TX_ENSURE_CURRENTNODE;
|
TX_ENSURE_CURRENTNODE;
|
||||||
|
|
||||||
|
@ -539,12 +537,12 @@ txMozillaXMLOutput::startElementInternal(nsIAtom* aPrefix,
|
||||||
ni = mNodeInfoManager->GetNodeInfo(aLocalName, aPrefix, aNsID);
|
ni = mNodeInfoManager->GetNodeInfo(aLocalName, aPrefix, aNsID);
|
||||||
NS_ENSURE_TRUE(ni, NS_ERROR_OUT_OF_MEMORY);
|
NS_ENSURE_TRUE(ni, NS_ERROR_OUT_OF_MEMORY);
|
||||||
|
|
||||||
NS_NewElement(getter_AddRefs(mOpenedElement), aElemType, ni, PR_FALSE);
|
NS_NewElement(getter_AddRefs(mOpenedElement), aNsID, ni, PR_FALSE);
|
||||||
|
|
||||||
// Set up the element and adjust state
|
// Set up the element and adjust state
|
||||||
if (!mNoFixup) {
|
if (!mNoFixup) {
|
||||||
if (aElemType == kNameSpaceID_XHTML) {
|
if (aNsID == kNameSpaceID_XHTML) {
|
||||||
mOpenedElementIsHTML = aNsID != kNameSpaceID_XHTML;
|
mOpenedElementIsHTML = (mOutputFormat.mMethod == eHTMLOutput);
|
||||||
rv = startHTMLElement(mOpenedElement, mOpenedElementIsHTML);
|
rv = startHTMLElement(mOpenedElement, mOpenedElementIsHTML);
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
|
||||||
|
|
|
@ -121,7 +121,7 @@ private:
|
||||||
nsresult attributeInternal(nsIAtom* aPrefix, nsIAtom* aLocalName,
|
nsresult attributeInternal(nsIAtom* aPrefix, nsIAtom* aLocalName,
|
||||||
PRInt32 aNsID, const nsString& aValue);
|
PRInt32 aNsID, const nsString& aValue);
|
||||||
nsresult startElementInternal(nsIAtom* aPrefix, nsIAtom* aLocalName,
|
nsresult startElementInternal(nsIAtom* aPrefix, nsIAtom* aLocalName,
|
||||||
PRInt32 aNsID, PRInt32 aElemType);
|
PRInt32 aNsID);
|
||||||
|
|
||||||
nsCOMPtr<nsIDocument> mDocument;
|
nsCOMPtr<nsIDocument> mDocument;
|
||||||
nsCOMPtr<nsINode> mCurrentNode; // This is updated once an element is
|
nsCOMPtr<nsINode> mCurrentNode; // This is updated once an element is
|
||||||
|
|
|
@ -93,7 +93,7 @@ txUnknownHandler::startElement(nsIAtom* aPrefix, nsIAtom* aLocalName,
|
||||||
aLowercaseLocalName = owner;
|
aLowercaseLocalName = owner;
|
||||||
}
|
}
|
||||||
|
|
||||||
PRBool htmlRoot = aNsID == kNameSpaceID_None && !aPrefix &&
|
PRBool htmlRoot = aNsID == kNameSpaceID_XHTML && !aPrefix &&
|
||||||
aLowercaseLocalName == txHTMLAtoms::html;
|
aLowercaseLocalName == txHTMLAtoms::html;
|
||||||
|
|
||||||
// Use aLocalName and not aLowercaseLocalName in case the output
|
// Use aLocalName and not aLowercaseLocalName in case the output
|
||||||
|
|
|
@ -361,15 +361,15 @@ nsContentDLF::CreateBlankDocument(nsILoadGroup *aLoadGroup,
|
||||||
nsCOMPtr<nsINodeInfo> htmlNodeInfo;
|
nsCOMPtr<nsINodeInfo> htmlNodeInfo;
|
||||||
|
|
||||||
// generate an html html element
|
// generate an html html element
|
||||||
htmlNodeInfo = nim->GetNodeInfo(nsGkAtoms::html, 0, kNameSpaceID_None);
|
htmlNodeInfo = nim->GetNodeInfo(nsGkAtoms::html, 0, kNameSpaceID_XHTML);
|
||||||
nsCOMPtr<nsIContent> htmlElement = NS_NewHTMLHtmlElement(htmlNodeInfo);
|
nsCOMPtr<nsIContent> htmlElement = NS_NewHTMLHtmlElement(htmlNodeInfo);
|
||||||
|
|
||||||
// generate an html head element
|
// generate an html head element
|
||||||
htmlNodeInfo = nim->GetNodeInfo(nsGkAtoms::head, 0, kNameSpaceID_None);
|
htmlNodeInfo = nim->GetNodeInfo(nsGkAtoms::head, 0, kNameSpaceID_XHTML);
|
||||||
nsCOMPtr<nsIContent> headElement = NS_NewHTMLHeadElement(htmlNodeInfo);
|
nsCOMPtr<nsIContent> headElement = NS_NewHTMLHeadElement(htmlNodeInfo);
|
||||||
|
|
||||||
// generate an html body element
|
// generate an html body element
|
||||||
htmlNodeInfo = nim->GetNodeInfo(nsGkAtoms::body, 0, kNameSpaceID_None);
|
htmlNodeInfo = nim->GetNodeInfo(nsGkAtoms::body, 0, kNameSpaceID_XHTML);
|
||||||
nsCOMPtr<nsIContent> bodyElement = NS_NewHTMLBodyElement(htmlNodeInfo);
|
nsCOMPtr<nsIContent> bodyElement = NS_NewHTMLBodyElement(htmlNodeInfo);
|
||||||
|
|
||||||
// blat in the structure
|
// blat in the structure
|
||||||
|
|
|
@ -3057,21 +3057,10 @@ nsresult nsPluginInstanceOwner::EnsureCachedAttrParamArrays()
|
||||||
// might kill us...
|
// might kill us...
|
||||||
nsCOMPtr<nsIPluginInstanceOwner> kungFuDeathGrip(this);
|
nsCOMPtr<nsIPluginInstanceOwner> kungFuDeathGrip(this);
|
||||||
|
|
||||||
if (ni->NamespaceEquals(kNameSpaceID_XHTML)) {
|
NS_NAMED_LITERAL_STRING(xhtml_ns, "http://www.w3.org/1999/xhtml");
|
||||||
// For XHTML elements we need to take the namespace URI into
|
|
||||||
// account when looking for param elements.
|
|
||||||
|
|
||||||
NS_NAMED_LITERAL_STRING(xhtml_ns, "http://www.w3.org/1999/xhtml");
|
mydomElement->GetElementsByTagNameNS(xhtml_ns, NS_LITERAL_STRING("param"),
|
||||||
|
|
||||||
mydomElement->GetElementsByTagNameNS(xhtml_ns, NS_LITERAL_STRING("param"),
|
|
||||||
getter_AddRefs(allParams));
|
|
||||||
} else {
|
|
||||||
// If content is not XHTML, it must be HTML, no need to worry
|
|
||||||
// about namespaces then...
|
|
||||||
|
|
||||||
mydomElement->GetElementsByTagName(NS_LITERAL_STRING("param"),
|
|
||||||
getter_AddRefs(allParams));
|
getter_AddRefs(allParams));
|
||||||
}
|
|
||||||
|
|
||||||
if (allParams) {
|
if (allParams) {
|
||||||
PRUint32 numAllParams;
|
PRUint32 numAllParams;
|
||||||
|
@ -3162,7 +3151,8 @@ nsresult nsPluginInstanceOwner::EnsureCachedAttrParamArrays()
|
||||||
// (see the AddAttributes functions in the HTML and XML content sinks).
|
// (see the AddAttributes functions in the HTML and XML content sinks).
|
||||||
PRInt16 start, end, increment;
|
PRInt16 start, end, increment;
|
||||||
if (mContent->IsNodeOfType(nsINode::eHTML) &&
|
if (mContent->IsNodeOfType(nsINode::eHTML) &&
|
||||||
mContent->NodeInfo()->NamespaceEquals(kNameSpaceID_None)) {
|
mContent->GetOwnerDoc() && // XXX clean up after bug 335998 lands
|
||||||
|
!(mContent->GetOwnerDoc()->IsCaseSensitive())) {
|
||||||
// HTML. Walk attributes in reverse order.
|
// HTML. Walk attributes in reverse order.
|
||||||
start = numRealAttrs - 1;
|
start = numRealAttrs - 1;
|
||||||
end = -1;
|
end = -1;
|
||||||
|
|
|
@ -291,7 +291,7 @@ int main(int argc, char** argv)
|
||||||
nsIAtom* li = NS_NewAtom("li");
|
nsIAtom* li = NS_NewAtom("li");
|
||||||
|
|
||||||
nsCOMPtr<nsINodeInfo> ni;
|
nsCOMPtr<nsINodeInfo> ni;
|
||||||
myDoc->NodeInfoManager()->GetNodeInfo(li, nsnull, kNameSpaceID_None,
|
myDoc->NodeInfoManager()->GetNodeInfo(li, nsnull, kNameSpaceID_XHTML,
|
||||||
getter_AddRefs(ni));
|
getter_AddRefs(ni));
|
||||||
|
|
||||||
rv = NS_NewHTMLLIElement(&container,ni);
|
rv = NS_NewHTMLLIElement(&container,ni);
|
||||||
|
|
|
@ -900,14 +900,11 @@ RuleProcessorData::RuleProcessorData(nsPresContext* aPresContext,
|
||||||
// check for HTMLContent and Link status
|
// check for HTMLContent and Link status
|
||||||
if (aContent->IsNodeOfType(nsINode::eHTML)) {
|
if (aContent->IsNodeOfType(nsINode::eHTML)) {
|
||||||
mIsHTMLContent = PR_TRUE;
|
mIsHTMLContent = PR_TRUE;
|
||||||
// Note that we want to treat non-XML HTML content as XHTML for namespace
|
|
||||||
// purposes, since html.css has that namespace declared.
|
|
||||||
mNameSpaceID = kNameSpaceID_XHTML;
|
|
||||||
} else {
|
|
||||||
// get the namespace
|
|
||||||
mNameSpaceID = aContent->GetNameSpaceID();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// get the namespace
|
||||||
|
mNameSpaceID = aContent->GetNameSpaceID();
|
||||||
|
|
||||||
// if HTML content and it has some attributes, check for an HTML link
|
// if HTML content and it has some attributes, check for an HTML link
|
||||||
// NOTE: optimization: cannot be a link if no attributes (since it needs an href)
|
// NOTE: optimization: cannot be a link if no attributes (since it needs an href)
|
||||||
nsILinkHandler* linkHandler =
|
nsILinkHandler* linkHandler =
|
||||||
|
@ -1571,7 +1568,8 @@ static PRBool SelectorMatches(RuleProcessorData &data,
|
||||||
}
|
}
|
||||||
else if (nsCSSPseudoClasses::mozIsHTML == pseudoClass->mAtom) {
|
else if (nsCSSPseudoClasses::mozIsHTML == pseudoClass->mAtom) {
|
||||||
result = data.mIsHTMLContent &&
|
result = data.mIsHTMLContent &&
|
||||||
data.mContent->GetNameSpaceID() == kNameSpaceID_None;
|
data.mContent->GetOwnerDoc() && // XXX clean up after bug 335998 lands
|
||||||
|
!(data.mContent->GetOwnerDoc()->IsCaseSensitive());
|
||||||
}
|
}
|
||||||
#ifdef MOZ_MATHML
|
#ifdef MOZ_MATHML
|
||||||
else if (nsCSSPseudoClasses::mozMathIncrementScriptLevel == pseudoClass->mAtom) {
|
else if (nsCSSPseudoClasses::mozMathIncrementScriptLevel == pseudoClass->mAtom) {
|
||||||
|
|
Загрузка…
Ссылка в новой задаче