Bug 1607702 - Extract nsuri displaynames to nsNameSpaceManager r=bholley

Differential Revision: https://phabricator.services.mozilla.com/D59274

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Christoph Walcher 2020-01-10 18:45:12 +00:00
parent 94e7802888
commit 9d0708ddd2
6 changed files with 22 additions and 26 deletions

View File

@ -2091,15 +2091,9 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INTERNAL(Document)
uint32_t nsid = tmp->GetDefaultNamespaceID();
nsAutoCString uri;
if (tmp->mDocumentURI) uri = tmp->mDocumentURI->GetSpecOrDefault();
static const char* kNSURIs[] = {"([none])", "(xmlns)", "(xml)", "(xhtml)",
"(XLink)", "(XSLT)", "(MathML)", "(RDF)",
"(XUL)"};
if (nsid < ArrayLength(kNSURIs)) {
SprintfLiteral(name, "Document %s %s %s", loadedAsData.get(),
kNSURIs[nsid], uri.get());
} else {
SprintfLiteral(name, "Document %s %s", loadedAsData.get(), uri.get());
}
const char* nsuri = nsNameSpaceManager::GetNameSpaceDisplayName(nsid);
SprintfLiteral(name, "Document %s %s %s", loadedAsData.get(), nsuri,
uri.get());
cb.DescribeRefCountedNode(tmp->mRefCnt.get(), name);
} else {
NS_IMPL_CYCLE_COLLECTION_DESCRIBE(Document, tmp->mRefCnt.get())

View File

@ -16,7 +16,8 @@
#include "nsCompatibility.h" // for member
#include "nsCOMPtr.h" // for member
#include "nsICookieSettings.h"
#include "nsGkAtoms.h" // for static class members
#include "nsGkAtoms.h" // for static class members
#include "nsNameSpaceManager.h" // for static class members
#include "nsIApplicationCache.h"
#include "nsIApplicationCacheContainer.h"
#include "nsIContentViewer.h"

View File

@ -1697,12 +1697,8 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INTERNAL(FragmentOrElement)
orphan.AppendLiteral(" (orphan)");
}
static const char* kNSURIs[] = {" ([none])", " (xmlns)", " (xml)",
" (xhtml)", " (XLink)", " (XSLT)",
" (MathML)", " (RDF)", " (XUL)",
" (SVG)", " (XML Events)"};
const char* nsuri = nsid < ArrayLength(kNSURIs) ? kNSURIs[nsid] : "";
SprintfLiteral(name, "FragmentOrElement%s %s%s%s%s %s", nsuri,
const char* nsuri = nsNameSpaceManager::GetNameSpaceDisplayName(nsid);
SprintfLiteral(name, "FragmentOrElement %s %s%s%s%s %s", nsuri,
localName.get(), NS_ConvertUTF16toUTF8(id).get(),
NS_ConvertUTF16toUTF8(classes).get(), orphan.get(),
uri.get());

View File

@ -111,21 +111,13 @@ NS_IMPL_CYCLE_COLLECTION_CLASS(NodeInfo)
NS_IMPL_CYCLE_COLLECTION_UNLINK_0(NodeInfo)
static const char* kNodeInfoNSURIs[] = {
" ([none])", " (xmlns)", " (xml)", " (xhtml)", " (XLink)",
" (XSLT)", " (MathML)", " (RDF)", " (XUL)"};
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INTERNAL(NodeInfo)
if (MOZ_UNLIKELY(cb.WantDebugInfo())) {
char name[72];
uint32_t nsid = tmp->NamespaceID();
nsAtomCString localName(tmp->NameAtom());
if (nsid < ArrayLength(kNodeInfoNSURIs)) {
SprintfLiteral(name, "NodeInfo%s %s", kNodeInfoNSURIs[nsid],
localName.get());
} else {
SprintfLiteral(name, "NodeInfo %s", localName.get());
}
const char* nsuri = nsNameSpaceManager::GetNameSpaceDisplayName(nsid);
SprintfLiteral(name, "NodeInfo %s %s", nsuri, localName.get());
cb.DescribeRefCountedNode(tmp->mRefCnt.get(), name);
} else {

View File

@ -162,6 +162,17 @@ int32_t nsNameSpaceManager::GetNameSpaceID(nsAtom* aURI, bool aInChromeDoc) {
return kNameSpaceID_Unknown;
}
// static
const char* nsNameSpaceManager::GetNameSpaceDisplayName(uint32_t aNameSpaceID) {
static const char* kNSURIs[] = {"([none])", "(xmlns)", "(xml)", "(xhtml)",
"(XLink)", "(XSLT)", "(MathML)", "(RDF)",
"(XUL)", "(SVG)"};
if (aNameSpaceID < ArrayLength(kNSURIs)) {
return kNSURIs[aNameSpaceID];
}
return "";
}
nsresult NS_NewElement(Element** aResult,
already_AddRefed<mozilla::dom::NodeInfo>&& aNodeInfo,
FromParser aFromParser, const nsAString* aIs) {

View File

@ -56,6 +56,8 @@ class nsNameSpaceManager final {
int32_t GetNameSpaceID(const nsAString& aURI, bool aInChromeDoc);
int32_t GetNameSpaceID(nsAtom* aURI, bool aInChromeDoc);
static const char* GetNameSpaceDisplayName(uint32_t aNameSpaceID);
bool HasElementCreator(int32_t aNameSpaceID);
static nsNameSpaceManager* GetInstance();