From 020bae66d9e5b035118e1ab58f074f45281ff9d5 Mon Sep 17 00:00:00 2001 From: Tom Schuster Date: Wed, 16 Apr 2025 07:42:49 +0000 Subject: [PATCH] Bug 1960678 - Make DocumentFlavor an enum class. r=emilio,necko-reviewers,sunil Differential Revision: https://phabricator.services.mozilla.com/D245599 --- dom/base/DOMImplementation.cpp | 4 ++-- dom/base/DOMParser.cpp | 6 +++--- dom/base/Document.cpp | 4 ++-- dom/base/Document.h | 12 ++++++------ dom/base/nsContentUtils.cpp | 4 ++-- dom/base/test/gtest/TestNsTextFragment.cpp | 2 +- dom/l10n/tests/gtest/TestL10nOverlays.cpp | 2 +- dom/xhr/XMLHttpRequestMainThread.cpp | 2 +- dom/xml/XMLDocument.cpp | 16 +++++++--------- gfx/thebes/gfxSVGGlyphs.cpp | 2 +- netwerk/test/gtest/TestCookie.cpp | 2 +- 11 files changed, 27 insertions(+), 29 deletions(-) diff --git a/dom/base/DOMImplementation.cpp b/dom/base/DOMImplementation.cpp index cc4d3d3da885..37a3842d2b67 100644 --- a/dom/base/DOMImplementation.cpp +++ b/dom/base/DOMImplementation.cpp @@ -100,7 +100,7 @@ nsresult DOMImplementation::CreateDocument(const nsAString& aNamespaceURI, rv = NS_NewDOMDocument(getter_AddRefs(doc), aNamespaceURI, aQualifiedName, aDoctype, mDocumentURI, mBaseURI, mOwner->NodePrincipal(), true, scriptHandlingObject, - DocumentFlavorXML); + DocumentFlavor::XML); NS_ENSURE_SUCCESS(rv, rv); // When DOMImplementation's createDocument method is invoked with @@ -153,7 +153,7 @@ nsresult DOMImplementation::CreateHTMLDocument(const nsAString& aTitle, nsresult rv = NS_NewDOMDocument(getter_AddRefs(doc), u""_ns, u""_ns, doctype, mDocumentURI, mBaseURI, mOwner->NodePrincipal(), true, - scriptHandlingObject, DocumentFlavorLegacyGuess); + scriptHandlingObject, DocumentFlavor::LegacyGuess); NS_ENSURE_SUCCESS(rv, rv); ErrorResult error; diff --git a/dom/base/DOMParser.cpp b/dom/base/DOMParser.cpp index 7c49b70e7b33..30edd508548b 100644 --- a/dom/base/DOMParser.cpp +++ b/dom/base/DOMParser.cpp @@ -58,7 +58,7 @@ NS_IMPL_CYCLE_COLLECTING_RELEASE(DOMParser) already_AddRefed DOMParser::ParseFromStringInternal( const nsAString& aStr, SupportedType aType, ErrorResult& aRv) { if (aType == SupportedType::Text_html) { - nsCOMPtr document = SetUpDocument(DocumentFlavorHTML, aRv); + nsCOMPtr document = SetUpDocument(DocumentFlavor::HTML, aRv); if (NS_WARN_IF(aRv.Failed())) { return nullptr; } @@ -191,8 +191,8 @@ already_AddRefed DOMParser::ParseFromStream(nsIInputStream* aStream, stream = bufferedStream; } - nsCOMPtr document = - SetUpDocument(svg ? DocumentFlavorSVG : DocumentFlavorLegacyGuess, aRv); + nsCOMPtr document = SetUpDocument( + svg ? DocumentFlavor::SVG : DocumentFlavor::LegacyGuess, aRv); if (NS_WARN_IF(aRv.Failed())) { return nullptr; } diff --git a/dom/base/Document.cpp b/dom/base/Document.cpp index 9fb836b9297b..a52d2f7b2f7e 100644 --- a/dom/base/Document.cpp +++ b/dom/base/Document.cpp @@ -13340,7 +13340,7 @@ Document* Document::GetTemplateContentsOwner() { Document::GetDocumentURI(), Document::GetDocBaseURI(), NodePrincipal(), true, // aLoadedAsData scriptObject, // aEventObject - IsHTMLDocument() ? DocumentFlavorHTML : DocumentFlavorXML); + IsHTMLDocument() ? DocumentFlavor::HTML : DocumentFlavor::XML); NS_ENSURE_SUCCESS(rv, nullptr); mTemplateContentsOwner = document; @@ -16604,7 +16604,7 @@ already_AddRefed Document::Constructor(const GlobalObject& aGlobal, nsCOMPtr doc; nsresult res = NS_NewDOMDocument(getter_AddRefs(doc), VoidString(), u""_ns, nullptr, uri, uri, prin->GetPrincipal(), - true, global, DocumentFlavorPlain); + true, global, DocumentFlavor::Plain); if (NS_FAILED(res)) { rv.Throw(res); return nullptr; diff --git a/dom/base/Document.h b/dom/base/Document.h index a8b9aaac39fa..cb9de4cc5495 100644 --- a/dom/base/Document.h +++ b/dom/base/Document.h @@ -5715,12 +5715,12 @@ nsresult NS_NewVideoDocument(mozilla::dom::Document** aInstancePtrResult, nsIPrincipal* aPartitionedPrincipal); // Enum for requesting a particular type of document when creating a doc -enum DocumentFlavor { - DocumentFlavorLegacyGuess, // compat with old code until made HTML5-compliant - DocumentFlavorHTML, // HTMLDocument with HTMLness bit set to true - DocumentFlavorSVG, // SVGDocument - DocumentFlavorXML, // XMLDocument - DocumentFlavorPlain, // Just a Document +enum class DocumentFlavor : uint8_t { + LegacyGuess, // compat with old code until made HTML5-compliant + HTML, // HTMLDocument with HTMLness bit set to true + SVG, // SVGDocument + XML, // XMLDocument + Plain, // Just a Document }; // Note: it's the caller's responsibility to create or get aPrincipal as needed diff --git a/dom/base/nsContentUtils.cpp b/dom/base/nsContentUtils.cpp index 96e3c78653c3..eba6b032314f 100644 --- a/dom/base/nsContentUtils.cpp +++ b/dom/base/nsContentUtils.cpp @@ -6166,13 +6166,13 @@ static already_AddRefed CreateInertDocument(const Document* aTemplate, /* static */ already_AddRefed nsContentUtils::CreateInertXMLDocument( const Document* aTemplate) { - return CreateInertDocument(aTemplate, DocumentFlavorXML); + return CreateInertDocument(aTemplate, DocumentFlavor::XML); } /* static */ already_AddRefed nsContentUtils::CreateInertHTMLDocument( const Document* aTemplate) { - return CreateInertDocument(aTemplate, DocumentFlavorHTML); + return CreateInertDocument(aTemplate, DocumentFlavor::HTML); } /* static */ diff --git a/dom/base/test/gtest/TestNsTextFragment.cpp b/dom/base/test/gtest/TestNsTextFragment.cpp index 27d0f03dda62..91c1351975a9 100644 --- a/dom/base/test/gtest/TestNsTextFragment.cpp +++ b/dom/base/test/gtest/TestNsTextFragment.cpp @@ -31,7 +31,7 @@ static already_AddRefed CreateHTMLDoc() { uri, uri, principal, false, // aLoadedAsData nullptr, // aEventObject - DocumentFlavorHTML)); + DocumentFlavor::HTML)); MOZ_RELEASE_ASSERT(doc); return doc.forget(); } diff --git a/dom/l10n/tests/gtest/TestL10nOverlays.cpp b/dom/l10n/tests/gtest/TestL10nOverlays.cpp index c6c9da9939d9..0a2ddbe003db 100644 --- a/dom/l10n/tests/gtest/TestL10nOverlays.cpp +++ b/dom/l10n/tests/gtest/TestL10nOverlays.cpp @@ -27,7 +27,7 @@ static already_AddRefed SetUpDocument() { uri, uri, principal, false, // aLoadedAsData nullptr, // aEventObject - DocumentFlavorHTML); + DocumentFlavor::HTML); if (NS_WARN_IF(NS_FAILED(rv))) { return nullptr; diff --git a/dom/xhr/XMLHttpRequestMainThread.cpp b/dom/xhr/XMLHttpRequestMainThread.cpp index f41db49a2a33..7f349eaa813b 100644 --- a/dom/xhr/XMLHttpRequestMainThread.cpp +++ b/dom/xhr/XMLHttpRequestMainThread.cpp @@ -2182,7 +2182,7 @@ XMLHttpRequestMainThread::OnStartRequest(nsIRequest* request) { rv = NS_NewDOMDocument( getter_AddRefs(mResponseXML), emptyStr, emptyStr, nullptr, docURI, baseURI, requestingPrincipal, true, global, - mIsHtml ? DocumentFlavorHTML : DocumentFlavorLegacyGuess); + mIsHtml ? DocumentFlavor::HTML : DocumentFlavor::LegacyGuess); NS_ENSURE_SUCCESS(rv, rv); mResponseXML->SetChromeXHRDocURI(chromeXHRDocURI); mResponseXML->SetChromeXHRDocBaseURI(chromeXHRDocBaseURI); diff --git a/dom/xml/XMLDocument.cpp b/dom/xml/XMLDocument.cpp index e9136bbe4620..aaf0dec85dd6 100644 --- a/dom/xml/XMLDocument.cpp +++ b/dom/xml/XMLDocument.cpp @@ -65,18 +65,18 @@ nsresult NS_NewDOMDocument(Document** aInstancePtrResult, nsCOMPtr d; bool isHTML = false; bool isXHTML = false; - if (aFlavor == DocumentFlavorSVG) { + if (aFlavor == DocumentFlavor::SVG) { rv = NS_NewSVGDocument(getter_AddRefs(d), aPrincipal, aPrincipal); - } else if (aFlavor == DocumentFlavorHTML) { + } else if (aFlavor == DocumentFlavor::HTML) { rv = NS_NewHTMLDocument(getter_AddRefs(d), aPrincipal, aPrincipal); isHTML = true; - } else if (aFlavor == DocumentFlavorXML) { + } else if (aFlavor == DocumentFlavor::XML) { rv = NS_NewXMLDocument(getter_AddRefs(d), aPrincipal, aPrincipal); - } else if (aFlavor == DocumentFlavorPlain) { + } else if (aFlavor == DocumentFlavor::Plain) { rv = NS_NewXMLDocument(getter_AddRefs(d), aPrincipal, aPrincipal, aLoadedAsData, true); } else if (aDoctype) { - MOZ_ASSERT(aFlavor == DocumentFlavorLegacyGuess); + MOZ_ASSERT(aFlavor == DocumentFlavor::LegacyGuess); nsAutoString publicId, name; aDoctype->GetPublicId(publicId); if (publicId.IsEmpty()) { @@ -100,13 +100,11 @@ nsresult NS_NewDOMDocument(Document** aInstancePtrResult, isXHTML = true; } else if (publicId.EqualsLiteral("-//W3C//DTD SVG 1.1//EN")) { rv = NS_NewSVGDocument(getter_AddRefs(d), aPrincipal, aPrincipal); - } - // XXX Add support for XUL documents. - else { + } else { rv = NS_NewXMLDocument(getter_AddRefs(d), aPrincipal, aPrincipal); } } else { - MOZ_ASSERT(aFlavor == DocumentFlavorLegacyGuess); + MOZ_ASSERT(aFlavor == DocumentFlavor::LegacyGuess); rv = NS_NewXMLDocument(getter_AddRefs(d), aPrincipal, aPrincipal); } diff --git a/gfx/thebes/gfxSVGGlyphs.cpp b/gfx/thebes/gfxSVGGlyphs.cpp index d1297a33fb50..362004a87024 100644 --- a/gfx/thebes/gfxSVGGlyphs.cpp +++ b/gfx/thebes/gfxSVGGlyphs.cpp @@ -375,7 +375,7 @@ nsresult gfxSVGGlyphsDocument::ParseDocument(const uint8_t* aBuffer, uri, uri, principal, false, // aLoadedAsData nullptr, // aEventObject - DocumentFlavorSVG); + DocumentFlavor::SVG); NS_ENSURE_SUCCESS(rv, rv); nsCOMPtr channel; diff --git a/netwerk/test/gtest/TestCookie.cpp b/netwerk/test/gtest/TestCookie.cpp index ebc8a6104e89..a450bba34f2c 100644 --- a/netwerk/test/gtest/TestCookie.cpp +++ b/netwerk/test/gtest/TestCookie.cpp @@ -132,7 +132,7 @@ void GetACookieNoHttp(nsICookieService* aCookieService, const char* aSpec, uri, uri, principal, false, // aLoadedAsData nullptr, // aEventObject - DocumentFlavorHTML); + DocumentFlavor::HTML); Unused << NS_WARN_IF(NS_FAILED(rv)); nsAutoString cookie;