commit 04e603a60a13aed5434a6d5450b432a8f5ab7c46 Merge: 709dd9e 5b48b32 Author: Georg Koppen gk@torproject.org Date: Mon Mar 23 08:02:02 2015 +0000
Merge remote-tracking branch 'pc/bug13548-01' into tor-browser-31.5.0esr-4.5-1
content/base/public/nsNameSpaceManager.h | 11 +++++--- content/base/src/nsNameSpaceManager.cpp | 43 ++++++++++++++++++++++++++++-- 2 files changed, 49 insertions(+), 5 deletions(-)
diff --cc content/base/src/nsNameSpaceManager.cpp index 3f4f9f8,d2a9722..d81d8d8 --- a/content/base/src/nsNameSpaceManager.cpp +++ b/content/base/src/nsNameSpaceManager.cpp @@@ -152,9 -166,20 +167,20 @@@ NS_NewElement(Element** aResult } #endif if (ns == kNameSpaceID_MathML) { - return NS_NewMathMLElement(aResult, ni.forget()); + // If the mathml.disabled pref. is true, convert all MathML nodes into + // generic XML nodes by swapping the namespace. + nsNameSpaceManager* nsmgr = nsNameSpaceManager::GetInstance(); + if (nsmgr && !nsmgr->mIsMathMLDisabled) { + return NS_NewMathMLElement(aResult, ni.forget()); + } + + nsNodeInfoManager *niMgr = ni->NodeInfoManager(); + nsCOMPtr<nsINodeInfo> genericXMLNI = niMgr->GetNodeInfo(ni->NameAtom(), + ni->GetPrefixAtom(), kNameSpaceID_XML, + ni->NodeType(), ni->GetExtraName()); + return NS_NewXMLElement(aResult, genericXMLNI.forget()); } - if (ns == kNameSpaceID_SVG) { + if (ns == kNameSpaceID_SVG && NS_SVGEnabled(ni->GetDocument())) { return NS_NewSVGElement(aResult, ni.forget(), aFromParser); } if (ns == kNameSpaceID_XBL && ni->Equals(nsGkAtoms::children)) {