Bug 468708 - namespaceURI for HTML elements should be http://www.w3.org/1999/xhtml (also make localName return in lower case) r=sicking, sr=peterv, a=beltzner
This commit is contained in:
Родитель
581aa9e694
Коммит
649265dc70
|
@ -78,7 +78,7 @@ function grid(aTableIdentifier)
|
||||||
|
|
||||||
this.handleKeyEvent = function handleKeyEvent(aEvent)
|
this.handleKeyEvent = function handleKeyEvent(aEvent)
|
||||||
{
|
{
|
||||||
if (aEvent.target.localName != "TD")
|
if (aEvent.target.localName != "td")
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var cell = aEvent.target;
|
var cell = aEvent.target;
|
||||||
|
@ -131,7 +131,7 @@ function grid(aTableIdentifier)
|
||||||
|
|
||||||
this.handleClickEvent = function handleClickEvent(aEvent)
|
this.handleClickEvent = function handleClickEvent(aEvent)
|
||||||
{
|
{
|
||||||
if (aEvent.target.localName != "TD")
|
if (aEvent.target.localName != "td")
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var curCell = this.getCurrentCell();
|
var curCell = this.getCurrentCell();
|
||||||
|
|
|
@ -45,7 +45,7 @@ function openContextMenuFor(element) {
|
||||||
|
|
||||||
// This seems to work, as long as we explicitly set the popupNode first.
|
// This seems to work, as long as we explicitly set the popupNode first.
|
||||||
// For frames, the popupNode needs to be set to inside the frame.
|
// For frames, the popupNode needs to be set to inside the frame.
|
||||||
if (element.localName == "IFRAME")
|
if (element.localName == "iframe")
|
||||||
chromeWin.document.popupNode = element.contentDocument.body;
|
chromeWin.document.popupNode = element.contentDocument.body;
|
||||||
else
|
else
|
||||||
chromeWin.document.popupNode = element;
|
chromeWin.document.popupNode = element;
|
||||||
|
|
|
@ -42,10 +42,10 @@
|
||||||
#include "nsCaseTreatment.h"
|
#include "nsCaseTreatment.h"
|
||||||
#include "nsChangeHint.h"
|
#include "nsChangeHint.h"
|
||||||
#include "nsINode.h"
|
#include "nsINode.h"
|
||||||
|
#include "nsIDocument.h" // for IsInHTMLDocument
|
||||||
|
|
||||||
// Forward declarations
|
// Forward declarations
|
||||||
class nsIAtom;
|
class nsIAtom;
|
||||||
class nsIDocument;
|
|
||||||
class nsPresContext;
|
class nsPresContext;
|
||||||
class nsIDOMEvent;
|
class nsIDOMEvent;
|
||||||
class nsIContent;
|
class nsIContent;
|
||||||
|
@ -202,6 +202,17 @@ public:
|
||||||
return IsInNativeAnonymousSubtree() || GetBindingParent() != nsnull;
|
return IsInNativeAnonymousSubtree() || GetBindingParent() != nsnull;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return true iff this node is in an HTML document (in the HTML5 sense of
|
||||||
|
* the term, i.e. not in an XHTML/XML document).
|
||||||
|
*/
|
||||||
|
inline PRBool IsInHTMLDocument() const
|
||||||
|
{
|
||||||
|
nsIDocument* doc = GetOwnerDoc();
|
||||||
|
return doc && // XXX clean up after bug 335998 lands
|
||||||
|
!doc->IsCaseSensitive();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the namespace that this element's tag is defined in
|
* Get the namespace that this element's tag is defined in
|
||||||
* @return the namespace
|
* @return the namespace
|
||||||
|
|
|
@ -817,7 +817,7 @@ nsFrameLoader::EnsureDocShell()
|
||||||
nsAutoString frameName;
|
nsAutoString frameName;
|
||||||
|
|
||||||
PRInt32 namespaceID = mOwnerContent->GetNameSpaceID();
|
PRInt32 namespaceID = mOwnerContent->GetNameSpaceID();
|
||||||
if (namespaceID == kNameSpaceID_XHTML) {
|
if (namespaceID == kNameSpaceID_XHTML && !mOwnerContent->IsInHTMLDocument()) {
|
||||||
mOwnerContent->GetAttr(kNameSpaceID_None, nsGkAtoms::id, frameName);
|
mOwnerContent->GetAttr(kNameSpaceID_None, nsGkAtoms::id, frameName);
|
||||||
} else {
|
} else {
|
||||||
mOwnerContent->GetAttr(kNameSpaceID_None, nsGkAtoms::name, frameName);
|
mOwnerContent->GetAttr(kNameSpaceID_None, nsGkAtoms::name, frameName);
|
||||||
|
|
|
@ -491,8 +491,7 @@ nsXHTMLContentSerializer::AfterElementStart(nsIContent * aContent,
|
||||||
nsAString& aStr)
|
nsAString& aStr)
|
||||||
{
|
{
|
||||||
nsIAtom *name = aContent->Tag();
|
nsIAtom *name = aContent->Tag();
|
||||||
if (((mIsHTMLSerializer && aContent->GetNameSpaceID() == kNameSpaceID_None) ||
|
if (aContent->GetNameSpaceID() == kNameSpaceID_XHTML &&
|
||||||
(!mIsHTMLSerializer && aContent->GetNameSpaceID() == kNameSpaceID_XHTML)) &&
|
|
||||||
mIsWholeDocument &&
|
mIsWholeDocument &&
|
||||||
name == nsGkAtoms::head) {
|
name == nsGkAtoms::head) {
|
||||||
|
|
||||||
|
@ -574,8 +573,7 @@ nsXHTMLContentSerializer::CheckElementStart(nsIContent * aContent,
|
||||||
nsIAtom *name = aContent->Tag();
|
nsIAtom *name = aContent->Tag();
|
||||||
PRInt32 namespaceID = aContent->GetNameSpaceID();
|
PRInt32 namespaceID = aContent->GetNameSpaceID();
|
||||||
|
|
||||||
if ((mIsHTMLSerializer && namespaceID == kNameSpaceID_None) ||
|
if (namespaceID == kNameSpaceID_XHTML) {
|
||||||
(!mIsHTMLSerializer && namespaceID == kNameSpaceID_XHTML)) {
|
|
||||||
if (name == nsGkAtoms::br && mPreLevel > 0 &&
|
if (name == nsGkAtoms::br && mPreLevel > 0 &&
|
||||||
(mFlags & nsIDocumentEncoder::OutputNoFormattingInPre)) {
|
(mFlags & nsIDocumentEncoder::OutputNoFormattingInPre)) {
|
||||||
AppendNewLineToString(aStr);
|
AppendNewLineToString(aStr);
|
||||||
|
@ -941,8 +939,7 @@ PRBool
|
||||||
nsXHTMLContentSerializer::LineBreakBeforeOpen(PRInt32 aNamespaceID, nsIAtom* aName)
|
nsXHTMLContentSerializer::LineBreakBeforeOpen(PRInt32 aNamespaceID, nsIAtom* aName)
|
||||||
{
|
{
|
||||||
|
|
||||||
if ((mIsHTMLSerializer && aNamespaceID != kNameSpaceID_None) ||
|
if (aNamespaceID != kNameSpaceID_XHTML) {
|
||||||
(!mIsHTMLSerializer && aNamespaceID != kNameSpaceID_XHTML)) {
|
|
||||||
return mAddSpace;
|
return mAddSpace;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -973,8 +970,7 @@ PRBool
|
||||||
nsXHTMLContentSerializer::LineBreakAfterOpen(PRInt32 aNamespaceID, nsIAtom* aName)
|
nsXHTMLContentSerializer::LineBreakAfterOpen(PRInt32 aNamespaceID, nsIAtom* aName)
|
||||||
{
|
{
|
||||||
|
|
||||||
if ((mIsHTMLSerializer && aNamespaceID != kNameSpaceID_None) ||
|
if (aNamespaceID != kNameSpaceID_XHTML) {
|
||||||
(!mIsHTMLSerializer && aNamespaceID != kNameSpaceID_XHTML)) {
|
|
||||||
return PR_FALSE;
|
return PR_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1005,8 +1001,7 @@ PRBool
|
||||||
nsXHTMLContentSerializer::LineBreakBeforeClose(PRInt32 aNamespaceID, nsIAtom* aName)
|
nsXHTMLContentSerializer::LineBreakBeforeClose(PRInt32 aNamespaceID, nsIAtom* aName)
|
||||||
{
|
{
|
||||||
|
|
||||||
if ((mIsHTMLSerializer && aNamespaceID != kNameSpaceID_None) ||
|
if (aNamespaceID != kNameSpaceID_XHTML) {
|
||||||
(!mIsHTMLSerializer && aNamespaceID != kNameSpaceID_XHTML)) {
|
|
||||||
return PR_FALSE;
|
return PR_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1028,8 +1023,7 @@ PRBool
|
||||||
nsXHTMLContentSerializer::LineBreakAfterClose(PRInt32 aNamespaceID, nsIAtom* aName)
|
nsXHTMLContentSerializer::LineBreakAfterClose(PRInt32 aNamespaceID, nsIAtom* aName)
|
||||||
{
|
{
|
||||||
|
|
||||||
if ((mIsHTMLSerializer && aNamespaceID != kNameSpaceID_None) ||
|
if (aNamespaceID != kNameSpaceID_XHTML) {
|
||||||
(!mIsHTMLSerializer && aNamespaceID != kNameSpaceID_XHTML)) {
|
|
||||||
return PR_FALSE;
|
return PR_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1070,8 +1064,7 @@ void
|
||||||
nsXHTMLContentSerializer::MaybeEnterInPreContent(nsIContent* aNode)
|
nsXHTMLContentSerializer::MaybeEnterInPreContent(nsIContent* aNode)
|
||||||
{
|
{
|
||||||
|
|
||||||
if ((mIsHTMLSerializer && aNode->GetNameSpaceID() != kNameSpaceID_None) ||
|
if (aNode->GetNameSpaceID() != kNameSpaceID_XHTML) {
|
||||||
(!mIsHTMLSerializer && aNode->GetNameSpaceID() != kNameSpaceID_XHTML)) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1090,8 +1083,7 @@ nsXHTMLContentSerializer::MaybeEnterInPreContent(nsIContent* aNode)
|
||||||
void
|
void
|
||||||
nsXHTMLContentSerializer::MaybeLeaveFromPreContent(nsIContent* aNode)
|
nsXHTMLContentSerializer::MaybeLeaveFromPreContent(nsIContent* aNode)
|
||||||
{
|
{
|
||||||
if ((mIsHTMLSerializer && aNode->GetNameSpaceID() != kNameSpaceID_None) ||
|
if (aNode->GetNameSpaceID() != kNameSpaceID_XHTML) {
|
||||||
(!mIsHTMLSerializer && aNode->GetNameSpaceID() != kNameSpaceID_XHTML)) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,42 +18,42 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=276037
|
||||||
<pre id="test">
|
<pre id="test">
|
||||||
<script class="testbody" type="text/javascript">
|
<script class="testbody" type="text/javascript">
|
||||||
/** Test for Bug 276037 **/
|
/** Test for Bug 276037 **/
|
||||||
function countElements (node, namespaceURI, tagName) {
|
function countElements (node, namespaceURI, localName) {
|
||||||
var count = 0;
|
var count = 0;
|
||||||
for (var i = 0; i < node.childNodes.length; i++) {
|
for (var i = 0; i < node.childNodes.length; i++) {
|
||||||
var child = node.childNodes[i];
|
var child = node.childNodes[i];
|
||||||
if (child.nodeType == Node.ELEMENT_NODE && child.tagName == tagName &&
|
if (child.nodeType == Node.ELEMENT_NODE && child.localName == localName &&
|
||||||
child.namespaceURI == namespaceURI) {
|
child.namespaceURI == namespaceURI) {
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
if (child.hasChildNodes()) {
|
if (child.hasChildNodes()) {
|
||||||
count += countElements(child, namespaceURI, tagName);
|
count += countElements(child, namespaceURI, localName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
function checkElements(namespaceURI, tagName) {
|
function checkElements(namespaceURI, localName) {
|
||||||
var elementsNS = document.getElementsByTagNameNS(namespaceURI, tagName);
|
var elementsNS = document.getElementsByTagNameNS(namespaceURI, localName);
|
||||||
var elements = document.getElementsByTagName(tagName);
|
var elements = document.getElementsByTagName(localName);
|
||||||
var elementCount = countElements(document, namespaceURI, tagName);
|
var elementCount = countElements(document, namespaceURI, localName);
|
||||||
const gEBTN = 'document.getElementsByTagName(\'' + tagName + '\').length: ' + elements.length;
|
const gEBTN = 'document.getElementsByTagName(\'' + localName + '\').length: ' + elements.length;
|
||||||
const gEBTNNS = '; document.getElementsByTagNameNS(\'' + namespaceURI + '\', \'' + tagName + '\').length: ' + elementsNS.length;
|
const gEBTNNS = '; document.getElementsByTagNameNS(\'' + namespaceURI + '\', \'' + localName + '\').length: ' + elementsNS.length;
|
||||||
|
|
||||||
text1 = gEBTN + '; element count: ' + elementCount;
|
text1 = gEBTN + '; element count: ' + elementCount;
|
||||||
text2 = gEBTNNS + '; element count: ' + elementCount;
|
text2 = gEBTNNS + '; element count: ' + elementCount;
|
||||||
|
|
||||||
is(elements.length, elementCount, text1);
|
is(elements.length, elementCount, text1);
|
||||||
is(elementsNS.length, elementCount, text2);
|
is(elementsNS.length, elementCount, text2);
|
||||||
is(global.gEBTN[namespaceURI][tagName].length, elementCount, text1);
|
is(global.gEBTN[namespaceURI][localName].length, elementCount, text1);
|
||||||
is(global.gEBTNNS[namespaceURI][tagName].length, elementCount, text2);
|
is(global.gEBTNNS[namespaceURI][localName].length, elementCount, text2);
|
||||||
}
|
}
|
||||||
|
|
||||||
const xhtmlNS = null;
|
const xhtmlNS = 'http://www.w3.org/1999/xhtml';
|
||||||
|
|
||||||
function checkSpansAndScripts () {
|
function checkSpansAndScripts () {
|
||||||
checkElements(xhtmlNS, 'SPAN');
|
checkElements(xhtmlNS, 'span');
|
||||||
checkElements(xhtmlNS, 'SCRIPT');
|
checkElements(xhtmlNS, 'script');
|
||||||
}
|
}
|
||||||
|
|
||||||
SimpleTest.waitForExplicitFinish();
|
SimpleTest.waitForExplicitFinish();
|
||||||
|
@ -67,10 +67,10 @@ global.gEBTN[xhtmlNS] = {};
|
||||||
global.gEBTNNS = {};
|
global.gEBTNNS = {};
|
||||||
global.gEBTNNS[xhtmlNS] = {};
|
global.gEBTNNS[xhtmlNS] = {};
|
||||||
|
|
||||||
global.gEBTN[xhtmlNS].SPAN = document.getElementsByTagName("span");
|
global.gEBTN[xhtmlNS].span = document.getElementsByTagName("span");
|
||||||
global.gEBTNNS[xhtmlNS].SPAN = document.getElementsByTagNameNS(xhtmlNS, "span");
|
global.gEBTNNS[xhtmlNS].span = document.getElementsByTagNameNS(xhtmlNS, "span");
|
||||||
global.gEBTN[xhtmlNS].SCRIPT = document.getElementsByTagName("script");
|
global.gEBTN[xhtmlNS].script = document.getElementsByTagName("script");
|
||||||
global.gEBTNNS[xhtmlNS].SCRIPT = document.getElementsByTagNameNS(xhtmlNS, "script");
|
global.gEBTNNS[xhtmlNS].script = document.getElementsByTagNameNS(xhtmlNS, "script");
|
||||||
</script>
|
</script>
|
||||||
<p><span>Static text in span.</span></p>
|
<p><span>Static text in span.</span></p>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
|
@ -305,7 +305,7 @@ nsGenericHTMLElement::SetAttribute(const nsAString& aName,
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
|
||||||
nsCOMPtr<nsIAtom> nameAtom;
|
nsCOMPtr<nsIAtom> nameAtom;
|
||||||
if (mNodeInfo->NamespaceEquals(kNameSpaceID_None)) {
|
if (IsInHTMLDocument()) {
|
||||||
nsAutoString lower;
|
nsAutoString lower;
|
||||||
ToLowerCase(aName, lower);
|
ToLowerCase(aName, lower);
|
||||||
nameAtom = do_GetAtom(lower);
|
nameAtom = do_GetAtom(lower);
|
||||||
|
@ -327,58 +327,25 @@ nsGenericHTMLElement::GetNodeName(nsAString& aNodeName)
|
||||||
{
|
{
|
||||||
mNodeInfo->GetQualifiedName(aNodeName);
|
mNodeInfo->GetQualifiedName(aNodeName);
|
||||||
|
|
||||||
if (mNodeInfo->NamespaceEquals(kNameSpaceID_None))
|
if (IsInHTMLDocument())
|
||||||
ToUpperCase(aNodeName);
|
ToUpperCase(aNodeName);
|
||||||
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
nsresult
|
|
||||||
nsGenericHTMLElement::GetLocalName(nsAString& aLocalName)
|
|
||||||
{
|
|
||||||
mNodeInfo->GetLocalName(aLocalName);
|
|
||||||
|
|
||||||
if (mNodeInfo->NamespaceEquals(kNameSpaceID_None)) {
|
|
||||||
// No namespace, this means we're dealing with a good ol' HTML
|
|
||||||
// element, so uppercase the local name.
|
|
||||||
|
|
||||||
ToUpperCase(aLocalName);
|
|
||||||
}
|
|
||||||
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
nsresult
|
nsresult
|
||||||
nsGenericHTMLElement::GetElementsByTagName(const nsAString& aTagname,
|
nsGenericHTMLElement::GetElementsByTagName(const nsAString& aTagname,
|
||||||
nsIDOMNodeList** aReturn)
|
nsIDOMNodeList** aReturn)
|
||||||
{
|
{
|
||||||
nsAutoString tagName(aTagname);
|
nsAutoString tagName(aTagname);
|
||||||
|
|
||||||
// Only lowercase the name if this element has no namespace (i.e.
|
// Only lowercase the name if this is an HTML document.
|
||||||
// it's a HTML element, not an XHTML element).
|
if (IsInHTMLDocument())
|
||||||
if (mNodeInfo && mNodeInfo->NamespaceEquals(kNameSpaceID_None))
|
|
||||||
ToLowerCase(tagName);
|
ToLowerCase(tagName);
|
||||||
|
|
||||||
return nsGenericHTMLElementBase::GetElementsByTagName(tagName, aReturn);
|
return nsGenericHTMLElementBase::GetElementsByTagName(tagName, aReturn);
|
||||||
}
|
}
|
||||||
|
|
||||||
nsresult
|
|
||||||
nsGenericHTMLElement::GetElementsByTagNameNS(const nsAString& aNamespaceURI,
|
|
||||||
const nsAString& aLocalName,
|
|
||||||
nsIDOMNodeList** aReturn)
|
|
||||||
{
|
|
||||||
nsAutoString localName(aLocalName);
|
|
||||||
|
|
||||||
// Only lowercase the name if this element has no namespace (i.e.
|
|
||||||
// it's a HTML element, not an XHTML element).
|
|
||||||
if (mNodeInfo && mNodeInfo->NamespaceEquals(kNameSpaceID_None))
|
|
||||||
ToLowerCase(localName);
|
|
||||||
|
|
||||||
return nsGenericHTMLElementBase::GetElementsByTagNameNS(aNamespaceURI,
|
|
||||||
localName,
|
|
||||||
aReturn);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Implementation for nsIDOMHTMLElement
|
// Implementation for nsIDOMHTMLElement
|
||||||
nsresult
|
nsresult
|
||||||
nsGenericHTMLElement::GetId(nsAString& aId)
|
nsGenericHTMLElement::GetId(nsAString& aId)
|
||||||
|
@ -671,8 +638,7 @@ nsGenericHTMLElement::GetInnerHTML(nsAString& aInnerHTML)
|
||||||
nsresult rv = NS_OK;
|
nsresult rv = NS_OK;
|
||||||
|
|
||||||
nsAutoString contentType;
|
nsAutoString contentType;
|
||||||
if (!doc->IsCaseSensitive()) {
|
if (IsInHTMLDocument()) {
|
||||||
// All case-insensitive documents are HTML as far as we're concerned
|
|
||||||
contentType.AssignLiteral("text/html");
|
contentType.AssignLiteral("text/html");
|
||||||
} else {
|
} else {
|
||||||
doc->GetContentType(contentType);
|
doc->GetContentType(contentType);
|
||||||
|
@ -1200,8 +1166,6 @@ nsGenericHTMLElement::UnsetAttr(PRInt32 aNameSpaceID, nsIAtom* aAttribute,
|
||||||
already_AddRefed<nsIURI>
|
already_AddRefed<nsIURI>
|
||||||
nsGenericHTMLElement::GetBaseURI() const
|
nsGenericHTMLElement::GetBaseURI() const
|
||||||
{
|
{
|
||||||
nsIDocument* doc = GetOwnerDoc();
|
|
||||||
|
|
||||||
void* prop;
|
void* prop;
|
||||||
if (HasFlag(NODE_HAS_PROPERTIES) && (prop = GetProperty(nsGkAtoms::htmlBaseHref))) {
|
if (HasFlag(NODE_HAS_PROPERTIES) && (prop = GetProperty(nsGkAtoms::htmlBaseHref))) {
|
||||||
nsIURI* uri = static_cast<nsIURI*>(prop);
|
nsIURI* uri = static_cast<nsIURI*>(prop);
|
||||||
|
@ -1212,17 +1176,14 @@ nsGenericHTMLElement::GetBaseURI() const
|
||||||
|
|
||||||
// If we are a plain old HTML element (not XHTML), don't bother asking the
|
// If we are a plain old HTML element (not XHTML), don't bother asking the
|
||||||
// base class -- our base URI is determined solely by the document base.
|
// base class -- our base URI is determined solely by the document base.
|
||||||
if (mNodeInfo->NamespaceEquals(kNameSpaceID_None)) {
|
if (IsInHTMLDocument()) {
|
||||||
if (doc) {
|
// If we got here, GetOwnerDoc() is not null
|
||||||
nsIURI *uri = doc->GetBaseURI();
|
nsIURI *uri = GetOwnerDoc()->GetBaseURI();
|
||||||
NS_IF_ADDREF(uri);
|
NS_IF_ADDREF(uri);
|
||||||
|
|
||||||
return uri;
|
return uri;
|
||||||
}
|
}
|
||||||
|
|
||||||
return nsnull;
|
|
||||||
}
|
|
||||||
|
|
||||||
return nsGenericHTMLElementBase::GetBaseURI();
|
return nsGenericHTMLElementBase::GetBaseURI();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3461,7 +3422,7 @@ nsGenericHTMLElement::GetHashFromHrefURI(nsAString& aHash)
|
||||||
const nsAttrName*
|
const nsAttrName*
|
||||||
nsGenericHTMLElement::InternalGetExistingAttrNameFromQName(const nsAString& aStr) const
|
nsGenericHTMLElement::InternalGetExistingAttrNameFromQName(const nsAString& aStr) const
|
||||||
{
|
{
|
||||||
if (mNodeInfo->NamespaceEquals(kNameSpaceID_None)) {
|
if (IsInHTMLDocument()) {
|
||||||
nsAutoString lower;
|
nsAutoString lower;
|
||||||
ToLowerCase(aStr, lower);
|
ToLowerCase(aStr, lower);
|
||||||
return mAttrsAndChildren.GetExistingAttrNameFromQName(
|
return mAttrsAndChildren.GetExistingAttrNameFromQName(
|
||||||
|
|
|
@ -103,7 +103,6 @@ public:
|
||||||
|
|
||||||
// Implementation for nsIDOMNode
|
// Implementation for nsIDOMNode
|
||||||
NS_METHOD GetNodeName(nsAString& aNodeName);
|
NS_METHOD GetNodeName(nsAString& aNodeName);
|
||||||
NS_METHOD GetLocalName(nsAString& aLocalName);
|
|
||||||
|
|
||||||
// Implementation for nsIDOMElement
|
// Implementation for nsIDOMElement
|
||||||
NS_METHOD SetAttribute(const nsAString& aName,
|
NS_METHOD SetAttribute(const nsAString& aName,
|
||||||
|
@ -111,9 +110,6 @@ public:
|
||||||
NS_METHOD GetTagName(nsAString& aTagName);
|
NS_METHOD GetTagName(nsAString& aTagName);
|
||||||
NS_METHOD GetElementsByTagName(const nsAString& aTagname,
|
NS_METHOD GetElementsByTagName(const nsAString& aTagname,
|
||||||
nsIDOMNodeList** aReturn);
|
nsIDOMNodeList** aReturn);
|
||||||
NS_METHOD GetElementsByTagNameNS(const nsAString& aNamespaceURI,
|
|
||||||
const nsAString& aLocalName,
|
|
||||||
nsIDOMNodeList** aReturn);
|
|
||||||
|
|
||||||
// nsIDOMHTMLElement methods. Note that these are non-virtual
|
// nsIDOMHTMLElement methods. Note that these are non-virtual
|
||||||
// methods, implementations are expected to forward calls to these
|
// methods, implementations are expected to forward calls to these
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -321,7 +321,7 @@ nsHTMLStyleElement::GetStyleSheetURL(PRBool* aIsInline,
|
||||||
if (*aIsInline) {
|
if (*aIsInline) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (mNodeInfo->NamespaceEquals(kNameSpaceID_XHTML)) {
|
if (!IsInHTMLDocument()) {
|
||||||
// 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);
|
||||||
|
|
|
@ -548,7 +548,7 @@ HTMLContentSink::CreateContentObject(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);
|
||||||
}
|
}
|
||||||
else if (mNodeInfoCache[aNodeType]) {
|
else if (mNodeInfoCache[aNodeType]) {
|
||||||
nodeInfo = mNodeInfoCache[aNodeType];
|
nodeInfo = mNodeInfoCache[aNodeType];
|
||||||
|
@ -561,7 +561,7 @@ HTMLContentSink::CreateContentObject(const nsIParserNode& aNode,
|
||||||
nsIAtom *name = parserService->HTMLIdToAtomTag(aNodeType);
|
nsIAtom *name = parserService->HTMLIdToAtomTag(aNodeType);
|
||||||
NS_ASSERTION(name, "What? Reverse mapping of id to string broken!!!");
|
NS_ASSERTION(name, "What? Reverse mapping of id to string broken!!!");
|
||||||
|
|
||||||
nodeInfo = mNodeInfoManager->GetNodeInfo(name, nsnull, kNameSpaceID_None);
|
nodeInfo = mNodeInfoManager->GetNodeInfo(name, nsnull, kNameSpaceID_XHTML);
|
||||||
NS_IF_ADDREF(mNodeInfoCache[aNodeType] = nodeInfo);
|
NS_IF_ADDREF(mNodeInfoCache[aNodeType] = nodeInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -583,15 +583,8 @@ NS_NewHTMLElement(nsIContent** aResult, nsINodeInfo *aNodeInfo,
|
||||||
|
|
||||||
nsIAtom *name = aNodeInfo->NameAtom();
|
nsIAtom *name = aNodeInfo->NameAtom();
|
||||||
|
|
||||||
#ifdef DEBUG
|
NS_ASSERTION(aNodeInfo->NamespaceEquals(kNameSpaceID_XHTML),
|
||||||
if (aNodeInfo->NamespaceEquals(kNameSpaceID_None)) {
|
"Trying to HTML elements that don't have the XHTML namespace");
|
||||||
nsAutoString nameStr, lname;
|
|
||||||
name->ToString(nameStr);
|
|
||||||
ToLowerCase(nameStr, lname);
|
|
||||||
NS_ASSERTION(nameStr.Equals(lname), "name should be lowercase by now");
|
|
||||||
NS_ASSERTION(!aNodeInfo->GetPrefixAtom(), "should not have a prefix");
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
*aResult = CreateHTMLElement(parserService->
|
*aResult = CreateHTMLElement(parserService->
|
||||||
HTMLCaseSensitiveAtomTagToId(name),
|
HTMLCaseSensitiveAtomTagToId(name),
|
||||||
|
@ -1682,7 +1675,7 @@ HTMLContentSink::Init(nsIDocument* aDoc,
|
||||||
|
|
||||||
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);
|
||||||
|
|
||||||
// Make root part
|
// Make root part
|
||||||
|
@ -1710,7 +1703,7 @@ HTMLContentSink::Init(nsIDocument* aDoc,
|
||||||
|
|
||||||
// Make head part
|
// Make head part
|
||||||
nodeInfo = mNodeInfoManager->GetNodeInfo(nsGkAtoms::head,
|
nodeInfo = mNodeInfoManager->GetNodeInfo(nsGkAtoms::head,
|
||||||
nsnull, kNameSpaceID_None);
|
nsnull, kNameSpaceID_XHTML);
|
||||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||||
|
|
||||||
mHead = NS_NewHTMLHeadElement(nodeInfo);
|
mHead = NS_NewHTMLHeadElement(nodeInfo);
|
||||||
|
@ -2903,7 +2896,7 @@ HTMLContentSink::ProcessLINKTag(const nsIParserNode& aNode)
|
||||||
// Create content object
|
// Create content object
|
||||||
nsCOMPtr<nsIContent> element;
|
nsCOMPtr<nsIContent> element;
|
||||||
nsCOMPtr<nsINodeInfo> nodeInfo;
|
nsCOMPtr<nsINodeInfo> nodeInfo;
|
||||||
nodeInfo = mNodeInfoManager->GetNodeInfo(nsGkAtoms::link, nsnull, kNameSpaceID_None);
|
nodeInfo = mNodeInfoManager->GetNodeInfo(nsGkAtoms::link, nsnull, kNameSpaceID_XHTML);
|
||||||
|
|
||||||
result = NS_NewHTMLElement(getter_AddRefs(element), nodeInfo, PR_FALSE);
|
result = NS_NewHTMLElement(getter_AddRefs(element), nodeInfo, PR_FALSE);
|
||||||
NS_ENSURE_SUCCESS(result, result);
|
NS_ENSURE_SUCCESS(result, result);
|
||||||
|
|
|
@ -1212,7 +1212,7 @@ nsHTMLDocument::CreateElement(const nsAString& aTagName,
|
||||||
nsCOMPtr<nsIAtom> name = do_GetAtom(tagName);
|
nsCOMPtr<nsIAtom> name = do_GetAtom(tagName);
|
||||||
|
|
||||||
nsCOMPtr<nsIContent> content;
|
nsCOMPtr<nsIContent> content;
|
||||||
rv = CreateElem(name, nsnull, GetDefaultNamespaceID(), PR_TRUE,
|
rv = CreateElem(name, nsnull, kNameSpaceID_XHTML, PR_TRUE,
|
||||||
getter_AddRefs(content));
|
getter_AddRefs(content));
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
|
||||||
|
@ -1593,7 +1593,7 @@ NS_IMETHODIMP
|
||||||
nsHTMLDocument::GetImages(nsIDOMHTMLCollection** aImages)
|
nsHTMLDocument::GetImages(nsIDOMHTMLCollection** aImages)
|
||||||
{
|
{
|
||||||
if (!mImages) {
|
if (!mImages) {
|
||||||
mImages = new nsContentList(this, nsGkAtoms::img, GetDefaultNamespaceID());
|
mImages = new nsContentList(this, nsGkAtoms::img, kNameSpaceID_XHTML);
|
||||||
if (!mImages) {
|
if (!mImages) {
|
||||||
return NS_ERROR_OUT_OF_MEMORY;
|
return NS_ERROR_OUT_OF_MEMORY;
|
||||||
}
|
}
|
||||||
|
@ -1609,8 +1609,7 @@ NS_IMETHODIMP
|
||||||
nsHTMLDocument::GetApplets(nsIDOMHTMLCollection** aApplets)
|
nsHTMLDocument::GetApplets(nsIDOMHTMLCollection** aApplets)
|
||||||
{
|
{
|
||||||
if (!mApplets) {
|
if (!mApplets) {
|
||||||
mApplets = new nsContentList(this, nsGkAtoms::applet,
|
mApplets = new nsContentList(this, nsGkAtoms::applet, kNameSpaceID_XHTML);
|
||||||
GetDefaultNamespaceID());
|
|
||||||
if (!mApplets) {
|
if (!mApplets) {
|
||||||
return NS_ERROR_OUT_OF_MEMORY;
|
return NS_ERROR_OUT_OF_MEMORY;
|
||||||
}
|
}
|
||||||
|
@ -1643,10 +1642,9 @@ nsHTMLDocument::MatchLinks(nsIContent *aContent, PRInt32 aNamespaceID,
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
nsINodeInfo *ni = aContent->NodeInfo();
|
nsINodeInfo *ni = aContent->NodeInfo();
|
||||||
PRInt32 namespaceID = doc->GetDefaultNamespaceID();
|
|
||||||
|
|
||||||
nsIAtom *localName = ni->NameAtom();
|
nsIAtom *localName = ni->NameAtom();
|
||||||
if (ni->NamespaceID() == namespaceID &&
|
if (ni->NamespaceID() == kNameSpaceID_XHTML &&
|
||||||
(localName == nsGkAtoms::a || localName == nsGkAtoms::area)) {
|
(localName == nsGkAtoms::a || localName == nsGkAtoms::area)) {
|
||||||
return aContent->HasAttr(kNameSpaceID_None, nsGkAtoms::href);
|
return aContent->HasAttr(kNameSpaceID_None, nsGkAtoms::href);
|
||||||
}
|
}
|
||||||
|
@ -1688,8 +1686,7 @@ nsHTMLDocument::MatchAnchors(nsIContent *aContent, PRInt32 aNamespaceID,
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
PRInt32 namespaceID = aContent->GetCurrentDoc()->GetDefaultNamespaceID();
|
if (aContent->NodeInfo()->Equals(nsGkAtoms::a, kNameSpaceID_XHTML)) {
|
||||||
if (aContent->NodeInfo()->Equals(nsGkAtoms::a, namespaceID)) {
|
|
||||||
return aContent->HasAttr(kNameSpaceID_None, nsGkAtoms::name);
|
return aContent->HasAttr(kNameSpaceID_None, nsGkAtoms::name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2255,13 +2252,7 @@ nsHTMLDocument::GetElementsByTagNameNS(const nsAString& aNamespaceURI,
|
||||||
const nsAString& aLocalName,
|
const nsAString& aLocalName,
|
||||||
nsIDOMNodeList** aReturn)
|
nsIDOMNodeList** aReturn)
|
||||||
{
|
{
|
||||||
nsAutoString tmp(aLocalName);
|
return nsDocument::GetElementsByTagNameNS(aNamespaceURI, aLocalName, aReturn);
|
||||||
|
|
||||||
if (!IsXHTML()) {
|
|
||||||
ToLowerCase(tmp); // HTML elements are lower case internally.
|
|
||||||
}
|
|
||||||
|
|
||||||
return nsDocument::GetElementsByTagNameNS(aNamespaceURI, tmp, aReturn);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
|
@ -2585,7 +2576,7 @@ NS_IMETHODIMP
|
||||||
nsHTMLDocument::GetEmbeds(nsIDOMHTMLCollection** aEmbeds)
|
nsHTMLDocument::GetEmbeds(nsIDOMHTMLCollection** aEmbeds)
|
||||||
{
|
{
|
||||||
if (!mEmbeds) {
|
if (!mEmbeds) {
|
||||||
mEmbeds = new nsContentList(this, nsGkAtoms::embed, GetDefaultNamespaceID());
|
mEmbeds = new nsContentList(this, nsGkAtoms::embed, kNameSpaceID_XHTML);
|
||||||
if (!mEmbeds) {
|
if (!mEmbeds) {
|
||||||
return NS_ERROR_OUT_OF_MEMORY;
|
return NS_ERROR_OUT_OF_MEMORY;
|
||||||
}
|
}
|
||||||
|
@ -2918,7 +2909,7 @@ nsContentList*
|
||||||
nsHTMLDocument::GetForms()
|
nsHTMLDocument::GetForms()
|
||||||
{
|
{
|
||||||
if (!mForms)
|
if (!mForms)
|
||||||
mForms = new nsContentList(this, nsGkAtoms::form, GetDefaultNamespaceID());
|
mForms = new nsContentList(this, nsGkAtoms::form, kNameSpaceID_XHTML);
|
||||||
|
|
||||||
return mForms;
|
return mForms;
|
||||||
}
|
}
|
||||||
|
@ -3136,7 +3127,7 @@ DocAllResultMatch(nsIContent* aContent, PRInt32 aNamespaceID, nsIAtom* aAtom,
|
||||||
}
|
}
|
||||||
|
|
||||||
nsGenericHTMLElement* elm = nsGenericHTMLElement::FromContent(aContent);
|
nsGenericHTMLElement* elm = nsGenericHTMLElement::FromContent(aContent);
|
||||||
if (!elm || aContent->GetNameSpaceID() != kNameSpaceID_None) {
|
if (!elm) {
|
||||||
return PR_FALSE;
|
return PR_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4059,31 +4050,6 @@ nsHTMLDocument::QueryCommandValue(const nsAString & commandID,
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DEBUG
|
|
||||||
nsresult
|
|
||||||
nsHTMLDocument::CreateElem(nsIAtom *aName, nsIAtom *aPrefix,
|
|
||||||
PRInt32 aNamespaceID, PRBool aDocumentDefaultType,
|
|
||||||
nsIContent** aResult)
|
|
||||||
{
|
|
||||||
NS_ASSERTION(!aDocumentDefaultType || IsXHTML() ||
|
|
||||||
aNamespaceID == kNameSpaceID_None,
|
|
||||||
"HTML elements in an HTML document should have "
|
|
||||||
"kNamespaceID_None as their namespace ID.");
|
|
||||||
|
|
||||||
if (IsXHTML() &&
|
|
||||||
(aDocumentDefaultType || aNamespaceID == kNameSpaceID_XHTML)) {
|
|
||||||
nsCAutoString name, lcName;
|
|
||||||
aName->ToUTF8String(name);
|
|
||||||
ToLowerCase(name, lcName);
|
|
||||||
NS_ASSERTION(lcName.Equals(name),
|
|
||||||
"aName should be lowercase, fix caller.");
|
|
||||||
}
|
|
||||||
|
|
||||||
return nsDocument::CreateElem(aName, aPrefix, aNamespaceID,
|
|
||||||
aDocumentDefaultType, aResult);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
nsresult
|
nsresult
|
||||||
nsHTMLDocument::Clone(nsINodeInfo *aNodeInfo, nsINode **aResult) const
|
nsHTMLDocument::Clone(nsINodeInfo *aNodeInfo, nsINode **aResult) const
|
||||||
{
|
{
|
||||||
|
|
|
@ -184,13 +184,6 @@ public:
|
||||||
return !mIsRegularHTML;
|
return !mIsRegularHTML;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DEBUG
|
|
||||||
virtual nsresult CreateElem(nsIAtom *aName, nsIAtom *aPrefix,
|
|
||||||
PRInt32 aNamespaceID,
|
|
||||||
PRBool aDocumentDefaultType,
|
|
||||||
nsIContent** aResult);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
nsresult ChangeContentEditableCount(nsIContent *aElement, PRInt32 aChange);
|
nsresult ChangeContentEditableCount(nsIContent *aElement, PRInt32 aChange);
|
||||||
|
|
||||||
virtual EditingState GetEditingState()
|
virtual EditingState GetEditingState()
|
||||||
|
@ -274,7 +267,7 @@ protected:
|
||||||
|
|
||||||
virtual PRInt32 GetDefaultNamespaceID() const
|
virtual PRInt32 GetDefaultNamespaceID() const
|
||||||
{
|
{
|
||||||
return mIsRegularHTML ? kNameSpaceID_None : kNameSpaceID_XHTML;
|
return kNameSpaceID_XHTML;
|
||||||
}
|
}
|
||||||
|
|
||||||
nsCOMArray<nsIDOMHTMLMapElement> mImageMaps;
|
nsCOMArray<nsIDOMHTMLMapElement> mImageMaps;
|
||||||
|
|
|
@ -419,7 +419,9 @@ 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 +435,9 @@ 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 +525,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 +536,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 +1015,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());
|
||||||
|
@ -1175,7 +1179,7 @@ nsHTMLParanoidFragmentSink::AddLeaf(const nsIParserNode& aNode)
|
||||||
if (!parserService)
|
if (!parserService)
|
||||||
return NS_ERROR_OUT_OF_MEMORY;
|
return NS_ERROR_OUT_OF_MEMORY;
|
||||||
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);
|
||||||
rv = NS_NewHTMLElement(getter_AddRefs(content), nodeInfo, PR_FALSE);
|
rv = NS_NewHTMLElement(getter_AddRefs(content), nodeInfo, PR_FALSE);
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
|
|
@ -627,7 +627,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);
|
||||||
|
|
|
@ -281,7 +281,7 @@ nsPluginDocument::CreateSyntheticPluginDocument()
|
||||||
// make plugin content
|
// make plugin content
|
||||||
nsCOMPtr<nsINodeInfo> nodeInfo;
|
nsCOMPtr<nsINodeInfo> nodeInfo;
|
||||||
nodeInfo = mNodeInfoManager->GetNodeInfo(nsGkAtoms::embed, nsnull,
|
nodeInfo = mNodeInfoManager->GetNodeInfo(nsGkAtoms::embed, nsnull,
|
||||||
kNameSpaceID_None);
|
kNameSpaceID_XHTML);
|
||||||
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
NS_ENSURE_TRUE(nodeInfo, NS_ERROR_OUT_OF_MEMORY);
|
||||||
rv = NS_NewHTMLElement(getter_AddRefs(mPluginContent), nodeInfo, PR_FALSE);
|
rv = NS_NewHTMLElement(getter_AddRefs(mPluginContent), nodeInfo, PR_FALSE);
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
|
|
@ -109,7 +109,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 =
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
// Event handler for display togglers in Table of Contents
|
// Event handler for display togglers in Table of Contents
|
||||||
function toggleDisplay(event)
|
function toggleDisplay(event)
|
||||||
{
|
{
|
||||||
if (event.target.localName != "IMG")
|
if (event.target.localName != "img")
|
||||||
return;
|
return;
|
||||||
var img = event.target;
|
var img = event.target;
|
||||||
var div = img.nextSibling.nextSibling;
|
var div = img.nextSibling.nextSibling;
|
||||||
|
|
|
@ -72,7 +72,12 @@ PRBool txNameTest::matches(const txXPathNode& aNode, txIMatchContext* aContext)
|
||||||
return MB_TRUE;
|
return MB_TRUE;
|
||||||
|
|
||||||
// Compare namespaces
|
// Compare namespaces
|
||||||
if (txXPathNodeUtils::getNamespaceID(aNode) != mNamespace)
|
if (mNamespace != txXPathNodeUtils::getNamespaceID(aNode)
|
||||||
|
#ifndef TX_EXE
|
||||||
|
&& !(mNamespace == kNameSpaceID_None &&
|
||||||
|
txXPathNodeUtils::isHTMLElementInHTMLDocument(aNode))
|
||||||
|
#endif
|
||||||
|
)
|
||||||
return MB_FALSE;
|
return MB_FALSE;
|
||||||
|
|
||||||
// Name wild?
|
// Name wild?
|
||||||
|
|
|
@ -143,8 +143,16 @@ public:
|
||||||
static PRBool isProcessingInstruction(const txXPathNode& aNode);
|
static PRBool isProcessingInstruction(const txXPathNode& aNode);
|
||||||
static PRBool isComment(const txXPathNode& aNode);
|
static PRBool isComment(const txXPathNode& aNode);
|
||||||
static PRBool isText(const txXPathNode& aNode);
|
static PRBool isText(const txXPathNode& aNode);
|
||||||
|
#ifndef TX_EXE
|
||||||
#ifdef TX_EXE
|
static inline PRBool isHTMLElementInHTMLDocument(const txXPathNode& aNode)
|
||||||
|
{
|
||||||
|
if (!aNode.isContent()) {
|
||||||
|
return PR_FALSE;
|
||||||
|
}
|
||||||
|
nsIContent* content = aNode.Content();
|
||||||
|
return content->IsNodeOfType(nsINode::eHTML) && content->IsInHTMLDocument();
|
||||||
|
}
|
||||||
|
#else
|
||||||
private:
|
private:
|
||||||
static void appendNodeValueHelper(NodeDefinition* aNode, nsAString& aResult);
|
static void appendNodeValueHelper(NodeDefinition* aNode, nsAString& aResult);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -453,11 +453,12 @@ txMozillaXMLOutput::startElement(nsIAtom* aPrefix, nsIAtom* aLocalName,
|
||||||
|
|
||||||
aLowercaseLocalName = owner;
|
aLowercaseLocalName = owner;
|
||||||
}
|
}
|
||||||
return startElementInternal(nsnull, aLowercaseLocalName,
|
return startElementInternal(nsnull,
|
||||||
kNameSpaceID_None, kNameSpaceID_XHTML);
|
aLowercaseLocalName,
|
||||||
|
kNameSpaceID_XHTML);
|
||||||
}
|
}
|
||||||
|
|
||||||
return startElementInternal(aPrefix, aLocalName, aNsID, aNsID);
|
return startElementInternal(aPrefix, aLocalName, aNsID);
|
||||||
}
|
}
|
||||||
|
|
||||||
nsresult
|
nsresult
|
||||||
|
@ -465,11 +466,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 +484,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 +539,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);
|
||||||
|
|
||||||
|
@ -971,7 +971,7 @@ txMozillaXMLOutput::createHTMLElement(nsIAtom* aName,
|
||||||
|
|
||||||
nsCOMPtr<nsINodeInfo> ni;
|
nsCOMPtr<nsINodeInfo> ni;
|
||||||
ni = mNodeInfoManager->GetNodeInfo(aName, nsnull,
|
ni = mNodeInfoManager->GetNodeInfo(aName, nsnull,
|
||||||
kNameSpaceID_None);
|
kNameSpaceID_XHTML);
|
||||||
NS_ENSURE_TRUE(ni, NS_ERROR_OUT_OF_MEMORY);
|
NS_ENSURE_TRUE(ni, NS_ERROR_OUT_OF_MEMORY);
|
||||||
|
|
||||||
return NS_NewHTMLElement(aResult, ni, PR_FALSE);
|
return NS_NewHTMLElement(aResult, ni, PR_FALSE);
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -5185,12 +5185,6 @@ nsEditor::CreateHTMLContent(const nsAString& aTag, nsIContent** aContent)
|
||||||
if (!tag)
|
if (!tag)
|
||||||
return NS_ERROR_OUT_OF_MEMORY;
|
return NS_ERROR_OUT_OF_MEMORY;
|
||||||
|
|
||||||
nsCOMPtr<nsIHTMLDocument> htmlDoc = do_QueryInterface(tempDoc);
|
|
||||||
if (htmlDoc) {
|
|
||||||
return doc->CreateElem(tag, nsnull, doc->GetDefaultNamespaceID(),
|
|
||||||
PR_TRUE, aContent);
|
|
||||||
}
|
|
||||||
|
|
||||||
return doc->CreateElem(tag, nsnull, kNameSpaceID_XHTML, PR_FALSE, aContent);
|
return doc->CreateElem(tag, nsnull, kNameSpaceID_XHTML, PR_FALSE, aContent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -358,15 +358,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
|
||||||
|
|
|
@ -1026,7 +1026,7 @@ nsComboboxControlFrame::CreateAnonymousContent(nsTArray<nsIContent*>& aElements)
|
||||||
return NS_ERROR_OUT_OF_MEMORY;
|
return NS_ERROR_OUT_OF_MEMORY;
|
||||||
|
|
||||||
nsCOMPtr<nsINodeInfo> nodeInfo;
|
nsCOMPtr<nsINodeInfo> nodeInfo;
|
||||||
nodeInfo = nimgr->GetNodeInfo(nsGkAtoms::input, nsnull, kNameSpaceID_None);
|
nodeInfo = nimgr->GetNodeInfo(nsGkAtoms::input, nsnull, kNameSpaceID_XHTML);
|
||||||
|
|
||||||
// create button which drops the list down
|
// create button which drops the list down
|
||||||
NS_NewHTMLElement(getter_AddRefs(mButtonContent), nodeInfo, PR_FALSE);
|
NS_NewHTMLElement(getter_AddRefs(mButtonContent), nodeInfo, PR_FALSE);
|
||||||
|
|
|
@ -155,7 +155,7 @@ nsFileControlFrame::CreateAnonymousContent(nsTArray<nsIContent*>& aElements)
|
||||||
|
|
||||||
nsCOMPtr<nsINodeInfo> nodeInfo;
|
nsCOMPtr<nsINodeInfo> nodeInfo;
|
||||||
nodeInfo = doc->NodeInfoManager()->GetNodeInfo(nsGkAtoms::input, nsnull,
|
nodeInfo = doc->NodeInfoManager()->GetNodeInfo(nsGkAtoms::input, nsnull,
|
||||||
kNameSpaceID_None);
|
kNameSpaceID_XHTML);
|
||||||
|
|
||||||
// Create the text content
|
// Create the text content
|
||||||
NS_NewHTMLElement(getter_AddRefs(mTextContent), nodeInfo, PR_FALSE);
|
NS_NewHTMLElement(getter_AddRefs(mTextContent), nodeInfo, PR_FALSE);
|
||||||
|
|
|
@ -193,7 +193,7 @@ nsIsIndexFrame::CreateAnonymousContent(nsTArray<nsIContent*>& aElements)
|
||||||
|
|
||||||
// Create an hr
|
// Create an hr
|
||||||
nsCOMPtr<nsINodeInfo> hrInfo;
|
nsCOMPtr<nsINodeInfo> hrInfo;
|
||||||
hrInfo = nimgr->GetNodeInfo(nsGkAtoms::hr, nsnull, kNameSpaceID_None);
|
hrInfo = nimgr->GetNodeInfo(nsGkAtoms::hr, nsnull, kNameSpaceID_XHTML);
|
||||||
|
|
||||||
NS_NewHTMLElement(getter_AddRefs(mPreHr), hrInfo, PR_FALSE);
|
NS_NewHTMLElement(getter_AddRefs(mPreHr), hrInfo, PR_FALSE);
|
||||||
if (!mPreHr || !aElements.AppendElement(mPreHr))
|
if (!mPreHr || !aElements.AppendElement(mPreHr))
|
||||||
|
@ -211,7 +211,7 @@ nsIsIndexFrame::CreateAnonymousContent(nsTArray<nsIContent*>& aElements)
|
||||||
|
|
||||||
// Create text input field
|
// Create text input field
|
||||||
nsCOMPtr<nsINodeInfo> inputInfo;
|
nsCOMPtr<nsINodeInfo> inputInfo;
|
||||||
inputInfo = nimgr->GetNodeInfo(nsGkAtoms::input, nsnull, kNameSpaceID_None);
|
inputInfo = nimgr->GetNodeInfo(nsGkAtoms::input, nsnull, kNameSpaceID_XHTML);
|
||||||
|
|
||||||
NS_NewHTMLElement(getter_AddRefs(mInputContent), inputInfo, PR_FALSE);
|
NS_NewHTMLElement(getter_AddRefs(mInputContent), inputInfo, PR_FALSE);
|
||||||
if (!mInputContent)
|
if (!mInputContent)
|
||||||
|
|
|
@ -2967,21 +2967,10 @@ nsresult nsPluginInstanceOwner::EnsureCachedAttrParamArrays()
|
||||||
// might kill us...
|
// might kill us...
|
||||||
nsCOMPtr<nsIPluginInstanceOwner> kungFuDeathGrip(this);
|
nsCOMPtr<nsIPluginInstanceOwner> kungFuDeathGrip(this);
|
||||||
|
|
||||||
if (ni->NamespaceEquals(kNameSpaceID_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");
|
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));
|
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));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (allParams) {
|
if (allParams) {
|
||||||
PRUint32 numAllParams;
|
PRUint32 numAllParams;
|
||||||
|
@ -3072,7 +3061,7 @@ 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->IsInHTMLDocument()) {
|
||||||
// HTML. Walk attributes in reverse order.
|
// HTML. Walk attributes in reverse order.
|
||||||
start = numRealAttrs - 1;
|
start = numRealAttrs - 1;
|
||||||
end = -1;
|
end = -1;
|
||||||
|
|
|
@ -897,16 +897,11 @@ RuleProcessorData::RuleProcessorData(nsPresContext* aPresContext,
|
||||||
// see if there are attributes for the content
|
// see if there are attributes for the content
|
||||||
mHasAttributes = aContent->GetAttrCount() > 0;
|
mHasAttributes = aContent->GetAttrCount() > 0;
|
||||||
|
|
||||||
// check for HTMLContent and Link status
|
|
||||||
if (aContent->IsNodeOfType(nsINode::eHTML)) {
|
|
||||||
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
|
// get the namespace
|
||||||
mNameSpaceID = aContent->GetNameSpaceID();
|
mNameSpaceID = aContent->GetNameSpaceID();
|
||||||
}
|
|
||||||
|
// check for HTMLContent and Link status
|
||||||
|
mIsHTMLContent = (mNameSpaceID == kNameSpaceID_XHTML);
|
||||||
|
|
||||||
// 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)
|
||||||
|
@ -995,14 +990,6 @@ const nsString* RuleProcessorData::GetLang()
|
||||||
return mLanguage;
|
return mLanguage;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline PRInt32
|
|
||||||
CSSNameSpaceID(nsIContent *aContent)
|
|
||||||
{
|
|
||||||
return aContent->IsNodeOfType(nsINode::eHTML)
|
|
||||||
? kNameSpaceID_XHTML
|
|
||||||
: aContent->GetNameSpaceID();
|
|
||||||
}
|
|
||||||
|
|
||||||
PRInt32
|
PRInt32
|
||||||
RuleProcessorData::GetNthIndex(PRBool aIsOfType, PRBool aIsFromEnd,
|
RuleProcessorData::GetNthIndex(PRBool aIsOfType, PRBool aIsFromEnd,
|
||||||
PRBool aCheckEdgeOnly)
|
PRBool aCheckEdgeOnly)
|
||||||
|
@ -1061,7 +1048,7 @@ RuleProcessorData::GetNthIndex(PRBool aIsOfType, PRBool aIsFromEnd,
|
||||||
if (child->IsNodeOfType(nsINode::eELEMENT) &&
|
if (child->IsNodeOfType(nsINode::eELEMENT) &&
|
||||||
(!aIsOfType ||
|
(!aIsOfType ||
|
||||||
(child->Tag() == mContentTag &&
|
(child->Tag() == mContentTag &&
|
||||||
CSSNameSpaceID(child) == mNameSpaceID))) {
|
child->GetNameSpaceID() == mNameSpaceID))) {
|
||||||
if (aCheckEdgeOnly) {
|
if (aCheckEdgeOnly) {
|
||||||
// The caller only cares whether or not the result is 1, and we
|
// The caller only cares whether or not the result is 1, and we
|
||||||
// now know it's not.
|
// now know it's not.
|
||||||
|
@ -1570,8 +1557,7 @@ static PRBool SelectorMatches(RuleProcessorData &data,
|
||||||
stateToCheck = NS_EVENT_STATE_INDETERMINATE;
|
stateToCheck = NS_EVENT_STATE_INDETERMINATE;
|
||||||
}
|
}
|
||||||
else if (nsCSSPseudoClasses::mozIsHTML == pseudoClass->mAtom) {
|
else if (nsCSSPseudoClasses::mozIsHTML == pseudoClass->mAtom) {
|
||||||
result = data.mIsHTMLContent &&
|
result = data.mIsHTMLContent && data.mContent->IsInHTMLDocument();
|
||||||
data.mContent->GetNameSpaceID() == kNameSpaceID_None;
|
|
||||||
}
|
}
|
||||||
#ifdef MOZ_MATHML
|
#ifdef MOZ_MATHML
|
||||||
else if (nsCSSPseudoClasses::mozMathIncrementScriptLevel == pseudoClass->mAtom) {
|
else if (nsCSSPseudoClasses::mozMathIncrementScriptLevel == pseudoClass->mAtom) {
|
||||||
|
|
|
@ -209,7 +209,7 @@ baseView = {
|
||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
onClickDisplay: function(event) {
|
onClickDisplay: function(event) {
|
||||||
if (event.target.localName != 'INPUT') {
|
if (event.target.localName != 'input') {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
var handler = function() {return function(){view.setTierDisplay(event.target)}};
|
var handler = function() {return function(){view.setTierDisplay(event.target)}};
|
||||||
|
|
Загрузка…
Ссылка в новой задаче