--- a/dom/base/nsXHTMLContentSerializer.cpp
+++ b/dom/base/nsXHTMLContentSerializer.cpp
@@ -240,17 +240,17 @@ nsXHTMLContentSerializer::SerializeAttri
int32_t contentNamespaceID = aContent->GetNameSpaceID();
// this method is not called by nsHTMLContentSerializer
// so we don't have to check HTML element, just XHTML
if (mIsCopying && kNameSpaceID_XHTML == contentNamespaceID) {
- // Need to keep track of OL and LI elements in order to get ordinal number
+ // Need to keep track of OL and LI elements in order to get ordinal number
// for the LI.
if (aTagName == nsGkAtoms::ol) {
// We are copying and current node is an OL;
// Store its start attribute value in olState->startVal.
nsAutoString start;
int32_t startAttrVal = 0;
aContent->GetAttr(kNameSpaceID_None, nsGkAtoms::start, start);
if (!start.IsEmpty()) {
@@ -301,17 +301,19 @@ nsXHTMLContentSerializer::SerializeAttri
// XXX Unfortunately we need a namespace manager to get
// attribute URIs.
for (index = 0; index < count; index++) {
if (aSkipAttr == index) {
continue;
}
- const nsAttrName* name = aContent->GetAttrNameAt(index);
+ nsAttrInfo info = aContent->GetAttrInfoAt(index);
+ const nsAttrName* name = info.mName;
+
int32_t namespaceID = name->NamespaceID();
nsIAtom* attrName = name->LocalName();
nsIAtom* attrPrefix = name->GetPrefix();
// Filter out any attribute starting with [-|_]moz
nsDependentAtomString attrNameStr(attrName);
if (StringBeginsWith(attrNameStr, NS_LITERAL_STRING("_moz")) ||
StringBeginsWith(attrNameStr, NS_LITERAL_STRING("-moz"))) {
@@ -326,17 +328,17 @@ nsXHTMLContentSerializer::SerializeAttri
}
bool addNSAttr = false;
if (kNameSpaceID_XMLNS != namespaceID) {
nsContentUtils::NameSpaceManager()->GetNameSpaceURI(namespaceID, uriStr);
addNSAttr = ConfirmPrefix(prefixStr, uriStr, aOriginalElement, true);
}
- aContent->GetAttr(namespaceID, attrName, valueStr);
+ info.mValue->ToString(valueStr);
nsDependentAtomString nameStr(attrName);
bool isJS = false;
if (kNameSpaceID_XHTML == contentNamespaceID) {
//
// Filter out special case of <br type="_moz"> or <br _moz*>,
// used by the editor. Bug 16988. Yuck.
@@ -349,17 +351,17 @@ nsXHTMLContentSerializer::SerializeAttri
if (mIsCopying && mIsFirstChildOfOL && (aTagName == nsGkAtoms::li)
&& (attrName == nsGkAtoms::value)) {
// This is handled separately in SerializeLIValueAttribute()
continue;
}
isJS = IsJavaScript(aContent, attrName, namespaceID, valueStr);
- if (namespaceID == kNameSpaceID_None &&
+ if (namespaceID == kNameSpaceID_None &&
((attrName == nsGkAtoms::href) ||
(attrName == nsGkAtoms::src))) {
// Make all links absolute when converting only the selection:
if (mFlags & nsIDocumentEncoder::OutputAbsoluteLinks) {
// Would be nice to handle OBJECT and APPLET tags,
// but that gets more complicated since we have to
// search the tag list for CODEBASE as well.
// For now, just leave them relative.
@@ -555,17 +557,17 @@ nsXHTMLContentSerializer::IsShorthandAtt
// checked
if ((aAttrName == nsGkAtoms::checked) &&
(aElementName == nsGkAtoms::input)) {
return true;
}
// compact
if ((aAttrName == nsGkAtoms::compact) &&
- (aElementName == nsGkAtoms::dir ||
+ (aElementName == nsGkAtoms::dir ||
aElementName == nsGkAtoms::dl ||
aElementName == nsGkAtoms::menu ||
aElementName == nsGkAtoms::ol ||
aElementName == nsGkAtoms::ul)) {
return true;
}
// declare
@@ -673,17 +675,17 @@ nsXHTMLContentSerializer::LineBreakBefor
IsBlock(parserService->HTMLCaseSensitiveAtomTagToId(aName), res);
return res;
}
}
return mAddSpace;
}
-bool
+bool
nsXHTMLContentSerializer::LineBreakAfterOpen(int32_t aNamespaceID, nsIAtom* aName)
{
if (aNamespaceID != kNameSpaceID_XHTML) {
return false;
}
if ((aName == nsGkAtoms::html) ||
@@ -704,17 +706,17 @@ nsXHTMLContentSerializer::LineBreakAfter
(aName == nsGkAtoms::area) ||
(aName == nsGkAtoms::style)) {
return true;
}
return false;
}
-bool
+bool
nsXHTMLContentSerializer::LineBreakBeforeClose(int32_t aNamespaceID, nsIAtom* aName)
{
if (aNamespaceID != kNameSpaceID_XHTML) {
return false;
}
if ((aName == nsGkAtoms::html) ||
@@ -726,17 +728,17 @@ nsXHTMLContentSerializer::LineBreakBefor
(aName == nsGkAtoms::select) ||
(aName == nsGkAtoms::table) ||
(aName == nsGkAtoms::tbody)) {
return true;
}
return false;
}
-bool
+bool
nsXHTMLContentSerializer::LineBreakAfterClose(int32_t aNamespaceID, nsIAtom* aName)
{
if (aNamespaceID != kNameSpaceID_XHTML) {
return false;
}
if ((aName == nsGkAtoms::html) ||
@@ -886,17 +888,17 @@ nsXHTMLContentSerializer::SerializeLIVal
In that case we would not like to set "value" attribute to reduce the changes.
*/
//do nothing...
}
else if (offset > 0) {
// Set value attribute.
nsAutoString valueStr;
- //As serializer needs to use this valueAttr we are creating here,
+ //As serializer needs to use this valueAttr we are creating here,
valueStr.AppendInt(startVal + offset);
NS_ENSURE_TRUE(SerializeAttr(EmptyString(), NS_LITERAL_STRING("value"),
valueStr, aStr, false), false);
}
return true;
}
@@ -928,17 +930,17 @@ nsXHTMLContentSerializer::IsFirstChildOf
}
bool
nsXHTMLContentSerializer::HasNoChildren(nsIContent * aContent) {
for (nsIContent* child = aContent->GetFirstChild();
child;
child = child->GetNextSibling()) {
-
+
if (!child->IsNodeOfType(nsINode::eTEXT))
return false;
if (child->TextLength())
return false;
}
return true;