void nsXHTMLContentSerializer::MaybeLeaveFromPreContent(nsIContent* aNode) { if (!ShouldMaintainPreLevel() || !aNode->IsHTMLElement()) { return; } if (IsElementPreformatted(aNode) || aNode->IsAnyOfHTMLElements(nsGkAtoms::script, nsGkAtoms::style, nsGkAtoms::noscript, nsGkAtoms::noframes)) { --PreLevel(); } }
bool nsXHTMLContentSerializer::IsElementPreformatted(nsIContent* aNode) { MOZ_ASSERT(ShouldMaintainPreLevel(), "We should not be calling this needlessly"); if (!aNode->IsElement()) { return false; } RefPtr<nsStyleContext> styleContext = nsComputedDOMStyle::GetStyleContextNoFlush(aNode->AsElement(), nullptr, nullptr); if (styleContext) { const nsStyleText* textStyle = styleContext->StyleText(); return textStyle->WhiteSpaceOrNewlineIsSignificant(); } return false; }
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(); } }