diff --git a/mozilla/htmlparser/src/nsParserCIID.h b/mozilla/htmlparser/src/nsParserCIID.h
index 1e870fd8b10..79ddfe66a26 100644
--- a/mozilla/htmlparser/src/nsParserCIID.h
+++ b/mozilla/htmlparser/src/nsParserCIID.h
@@ -33,6 +33,9 @@
{0x9039c670, 0x2717, 0x11d2, \
{0x92, 0x46, 0x00, 0x80, 0x5f, 0x8a, 0x7a, 0xb6}}
+// {E6FD9941-899D-11d2-8EAE-00805F29F370}
+#define NS_WELLFORMEDDTD_CID \
+{ 0xe6fd9941, 0x899d, 0x11d2, { 0x8e, 0xae, 0x0, 0x80, 0x5f, 0x29, 0xf3, 0x70 } }
#endif
diff --git a/mozilla/htmlparser/src/nsParserFactory.cpp b/mozilla/htmlparser/src/nsParserFactory.cpp
index a3e5540234f..5b9f72735f4 100644
--- a/mozilla/htmlparser/src/nsParserFactory.cpp
+++ b/mozilla/htmlparser/src/nsParserFactory.cpp
@@ -24,6 +24,7 @@
#include "nsILoggingSink.h"
#include "nsParser.h"
#include "nsParserNode.h"
+#include "nsWellFormedDTD.h"
static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID);
static NS_DEFINE_IID(kIFactoryIID, NS_IFACTORY_IID);
@@ -31,6 +32,7 @@ static NS_DEFINE_IID(kIFactoryIID, NS_IFACTORY_IID);
static NS_DEFINE_IID(kCParser, NS_PARSER_IID);
static NS_DEFINE_IID(kCParserNode, NS_PARSER_NODE_IID);
static NS_DEFINE_IID(kLoggingSinkCID, NS_LOGGING_SINK_IID);
+static NS_DEFINE_CID(kWellFormedDTDCID, NS_WELLFORMEDDTD_CID);
class nsParserFactory : public nsIFactory
{
@@ -136,6 +138,12 @@ nsresult nsParserFactory::CreateInstance(nsISupports *aOuter,
*aResult = cs;
return rv;
}
+ else if (mClassID.Equals(kWellFormedDTDCID)) {
+ nsresult rv = NS_NewWellFormed_DTD((nsIDTD**) &inst);
+ if (NS_FAILED(rv)) {
+ return rv;
+ }
+ }
if (inst == NULL) {
return NS_ERROR_OUT_OF_MEMORY;
diff --git a/mozilla/parser/htmlparser/src/nsParserCIID.h b/mozilla/parser/htmlparser/src/nsParserCIID.h
index 1e870fd8b10..79ddfe66a26 100644
--- a/mozilla/parser/htmlparser/src/nsParserCIID.h
+++ b/mozilla/parser/htmlparser/src/nsParserCIID.h
@@ -33,6 +33,9 @@
{0x9039c670, 0x2717, 0x11d2, \
{0x92, 0x46, 0x00, 0x80, 0x5f, 0x8a, 0x7a, 0xb6}}
+// {E6FD9941-899D-11d2-8EAE-00805F29F370}
+#define NS_WELLFORMEDDTD_CID \
+{ 0xe6fd9941, 0x899d, 0x11d2, { 0x8e, 0xae, 0x0, 0x80, 0x5f, 0x29, 0xf3, 0x70 } }
#endif
diff --git a/mozilla/parser/htmlparser/src/nsParserFactory.cpp b/mozilla/parser/htmlparser/src/nsParserFactory.cpp
index a3e5540234f..5b9f72735f4 100644
--- a/mozilla/parser/htmlparser/src/nsParserFactory.cpp
+++ b/mozilla/parser/htmlparser/src/nsParserFactory.cpp
@@ -24,6 +24,7 @@
#include "nsILoggingSink.h"
#include "nsParser.h"
#include "nsParserNode.h"
+#include "nsWellFormedDTD.h"
static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID);
static NS_DEFINE_IID(kIFactoryIID, NS_IFACTORY_IID);
@@ -31,6 +32,7 @@ static NS_DEFINE_IID(kIFactoryIID, NS_IFACTORY_IID);
static NS_DEFINE_IID(kCParser, NS_PARSER_IID);
static NS_DEFINE_IID(kCParserNode, NS_PARSER_NODE_IID);
static NS_DEFINE_IID(kLoggingSinkCID, NS_LOGGING_SINK_IID);
+static NS_DEFINE_CID(kWellFormedDTDCID, NS_WELLFORMEDDTD_CID);
class nsParserFactory : public nsIFactory
{
@@ -136,6 +138,12 @@ nsresult nsParserFactory::CreateInstance(nsISupports *aOuter,
*aResult = cs;
return rv;
}
+ else if (mClassID.Equals(kWellFormedDTDCID)) {
+ nsresult rv = NS_NewWellFormed_DTD((nsIDTD**) &inst);
+ if (NS_FAILED(rv)) {
+ return rv;
+ }
+ }
if (inst == NULL) {
return NS_ERROR_OUT_OF_MEMORY;