void nsXHTMLContentSerializer::MaybeEnterInPreContent(nsIContent* aNode) { if (!ShouldMaintainPreLevel() || !aNode->IsHTMLElement()) { return; } if (IsElementPreformatted(aNode) || aNode->IsAnyOfHTMLElements(nsGkAtoms::script, nsGkAtoms::style, nsGkAtoms::noscript, nsGkAtoms::noframes)) { PreLevel()++; } }
void nsXHTMLContentSerializer::MaybeLeaveFromPreContent(nsIContent* aNode) { if (!ShouldMaintainPreLevel() || aNode->GetNameSpaceID() != kNameSpaceID_XHTML) { return; } nsIAtom *name = aNode->Tag(); if (IsElementPreformatted(aNode) || name == nsGkAtoms::script || name == nsGkAtoms::style || name == nsGkAtoms::noscript || name == nsGkAtoms::noframes ) { --PreLevel(); } }
NS_IMETHODIMP nsXHTMLContentSerializer::AppendText(nsIContent* aText, int32_t aStartOffset, int32_t aEndOffset, nsAString& aStr) { NS_ENSURE_ARG(aText); nsAutoString data; nsresult rv; rv = AppendTextData(aText, aStartOffset, aEndOffset, data, true); if (NS_FAILED(rv)) return NS_ERROR_FAILURE; if (mDoRaw || PreLevel() > 0) { NS_ENSURE_TRUE(AppendToStringConvertLF(data, aStr), NS_ERROR_OUT_OF_MEMORY); } else if (mDoFormat) { NS_ENSURE_TRUE(AppendToStringFormatedWrapped(data, aStr), NS_ERROR_OUT_OF_MEMORY); } else if (mDoWrap) { NS_ENSURE_TRUE(AppendToStringWrapped(data, aStr), NS_ERROR_OUT_OF_MEMORY); } else { int32_t lastNewlineOffset = kNotFound; if (HasLongLines(data, lastNewlineOffset)) { // We have long lines, rewrap mDoWrap = true; bool result = AppendToStringWrapped(data, aStr); mDoWrap = false; NS_ENSURE_TRUE(result, NS_ERROR_OUT_OF_MEMORY); } else { NS_ENSURE_TRUE(AppendToStringConvertLF(data, aStr), NS_ERROR_OUT_OF_MEMORY); } } return NS_OK; }