diff --git a/mozilla/content/base/public/MANIFEST b/mozilla/content/base/public/MANIFEST
index 805b3c61427..78e4e5cf058 100644
--- a/mozilla/content/base/public/MANIFEST
+++ b/mozilla/content/base/public/MANIFEST
@@ -27,3 +27,4 @@ nsIStyleSheet.h
nsIStyleSheetLinkingElement.h
nsITextContent.h
nsIContentList.h
+mozISanitizingSerializer.h
diff --git a/mozilla/content/base/public/Makefile.in b/mozilla/content/base/public/Makefile.in
index 3179cbb90aa..0d8c24e8d47 100644
--- a/mozilla/content/base/public/Makefile.in
+++ b/mozilla/content/base/public/Makefile.in
@@ -55,6 +55,7 @@ nsITextContent.h \
nsIPrivateDOMImplementation.h \
nsIContentSerializer.h \
nsIHTMLToTextSink.h \
+mozISanitizingSerializer.h \
nsIContentList.h \
$(NULL)
diff --git a/mozilla/content/base/public/makefile.win b/mozilla/content/base/public/makefile.win
index 74d364afd98..78870f8bf27 100644
--- a/mozilla/content/base/public/makefile.win
+++ b/mozilla/content/base/public/makefile.win
@@ -47,6 +47,7 @@ EXPORTS = \
nsIPrivateDOMImplementation.h \
nsIContentSerializer.h \
nsIHTMLToTextSink.h \
+ mozISanitizingSerializer.h \
nsIContentList.h \
$(NULL)
diff --git a/mozilla/content/base/public/nsContentCID.h b/mozilla/content/base/public/nsContentCID.h
index ee6a67764ef..011709cb9f1 100644
--- a/mozilla/content/base/public/nsContentCID.h
+++ b/mozilla/content/base/public/nsContentCID.h
@@ -220,6 +220,10 @@
#define NS_HTMLCONTENTSERIALIZER_CID \
{ 0x9d3f70da, 0x86e9, 0x11d4, { 0x95, 0xec, 0x00, 0xb0, 0xd0, 0x3e, 0x37, 0xb7 } }
+// {feca3c34-205e-4ae5-bd1c-03c686ff012b}
+#define MOZ_SANITIZINGHTMLSERIALIZER_CID \
+{ 0xfeca3c34, 0x205e, 0x4ae5, { 0xbd, 0x1c, 0x03, 0xc6, 0x86, 0xff, 0x01, 0x2b } }
+
// {6030f7ef-32ed-46a7-9a63-6a5d3f90445f}
#define NS_PLAINTEXTSERIALIZER_CID \
{ 0x6030f7ef, 0x32ed, 0x46a7, { 0x9a, 0x63, 0x6a, 0x5d, 0x3f, 0x90, 0x44, 0x5f } }
diff --git a/mozilla/content/base/public/nsIHTMLToTextSink.h b/mozilla/content/base/public/nsIHTMLToTextSink.h
index 05bdc374de2..581006cc578 100644
--- a/mozilla/content/base/public/nsIHTMLToTextSink.h
+++ b/mozilla/content/base/public/nsIHTMLToTextSink.h
@@ -59,6 +59,7 @@ class nsIHTMLToTextSink : public nsISupports {
NS_IMETHOD Initialize(nsAString* aOutString,
PRUint32 aFlags, PRUint32 aWrapCol) = 0;
+ // This function violates string ownership rules, see impl.
};
#endif
diff --git a/mozilla/content/base/src/Makefile.in b/mozilla/content/base/src/Makefile.in
index ffc3825a542..01f1bf33d6a 100644
--- a/mozilla/content/base/src/Makefile.in
+++ b/mozilla/content/base/src/Makefile.in
@@ -95,6 +95,7 @@ CPPSRCS = \
nsHTMLContentSerializer.cpp \
nsParserUtils.cpp \
nsPlainTextSerializer.cpp \
+ mozSanitizingSerializer.cpp \
nsScriptLoader.cpp \
nsStyleLinkElement.cpp \
nsContentAreaDragDrop.cpp \
diff --git a/mozilla/content/base/src/makefile.win b/mozilla/content/base/src/makefile.win
index 6767317f7d4..36ad94a636b 100644
--- a/mozilla/content/base/src/makefile.win
+++ b/mozilla/content/base/src/makefile.win
@@ -94,6 +94,7 @@ CPP_OBJS= \
.\$(OBJDIR)\nsHTMLContentSerializer.obj \
.\$(OBJDIR)\nsParserUtils.obj \
.\$(OBJDIR)\nsPlainTextSerializer.obj \
+ .\$(OBJDIR)\mozSanitizingSerializer.obj \
.\$(OBJDIR)\nsContentUtils.obj \
.\$(OBJDIR)\nsScriptLoader.obj \
.\$(OBJDIR)\nsStyleLinkElement.obj \
diff --git a/mozilla/content/build/nsContentCID.h b/mozilla/content/build/nsContentCID.h
index ee6a67764ef..011709cb9f1 100644
--- a/mozilla/content/build/nsContentCID.h
+++ b/mozilla/content/build/nsContentCID.h
@@ -220,6 +220,10 @@
#define NS_HTMLCONTENTSERIALIZER_CID \
{ 0x9d3f70da, 0x86e9, 0x11d4, { 0x95, 0xec, 0x00, 0xb0, 0xd0, 0x3e, 0x37, 0xb7 } }
+// {feca3c34-205e-4ae5-bd1c-03c686ff012b}
+#define MOZ_SANITIZINGHTMLSERIALIZER_CID \
+{ 0xfeca3c34, 0x205e, 0x4ae5, { 0xbd, 0x1c, 0x03, 0xc6, 0x86, 0xff, 0x01, 0x2b } }
+
// {6030f7ef-32ed-46a7-9a63-6a5d3f90445f}
#define NS_PLAINTEXTSERIALIZER_CID \
{ 0x6030f7ef, 0x32ed, 0x46a7, { 0x9a, 0x63, 0x6a, 0x5d, 0x3f, 0x90, 0x44, 0x5f } }
diff --git a/mozilla/content/build/nsContentModule.cpp b/mozilla/content/build/nsContentModule.cpp
index 84f8f367766..45a6f65361a 100644
--- a/mozilla/content/build/nsContentModule.cpp
+++ b/mozilla/content/build/nsContentModule.cpp
@@ -99,6 +99,7 @@
#include "nsIXBLService.h"
#include "nsLayoutAtoms.h"
#include "nsPlainTextSerializer.h"
+#include "mozSanitizingSerializer.h"
#include "nsRange.h"
#include "nsXMLContentSerializer.h"
#include "nsRuleNode.h"
@@ -343,6 +344,7 @@ MAKE_CTOR(CreateHTMLCopyTextEncoder, nsIDocumentEncoder, NS_NewHTM
MAKE_CTOR(CreateXMLContentSerializer, nsIContentSerializer, NS_NewXMLContentSerializer)
MAKE_CTOR(CreateHTMLContentSerializer, nsIContentSerializer, NS_NewHTMLContentSerializer)
MAKE_CTOR(CreatePlainTextSerializer, nsIContentSerializer, NS_NewPlainTextSerializer)
+MAKE_CTOR(CreateSanitizingHTMLSerializer, nsIContentSerializer, NS_NewSanitizingHTMLSerializer)
MAKE_CTOR(CreateXBLService, nsIXBLService, NS_NewXBLService)
MAKE_CTOR(CreateBindingManager, nsIBindingManager, NS_NewBindingManager)
MAKE_CTOR(CreateContentPolicy, nsIContentPolicy, NS_NewContentPolicy)
@@ -720,6 +722,11 @@ static const nsModuleComponentInfo gComponents[] = {
NS_PLAINTEXTSINK_CONTRACTID,
CreatePlainTextSerializer },
+ { "HTML sanitizing content serializer",
+ MOZ_SANITIZINGHTMLSERIALIZER_CID,
+ MOZ_SANITIZINGHTMLSERIALIZER_CONTRACTID,
+ CreateSanitizingHTMLSerializer },
+
{ "XBL Service",
NS_XBLSERVICE_CID,
"@mozilla.org/xbl;1",
diff --git a/mozilla/content/macbuild/content.xml b/mozilla/content/macbuild/content.xml
index e9e8b57a950..bb5a351586e 100644
--- a/mozilla/content/macbuild/content.xml
+++ b/mozilla/content/macbuild/content.xml
@@ -2436,6 +2436,13 @@
Text
Debug
+
+ Name
+ mozSanitizingSerializer.cpp
+ MacOS
+ Text
+ Debug
+
Name
nsDOMCSSRGBColor.cpp
@@ -3535,6 +3542,11 @@
nsWyciwygProtocolHandler.cpp
MacOS
+
+ Name
+ mozSanitizingSerializer.cpp
+ MacOS
+
Name
nsDOMCSSRGBColor.cpp
@@ -5925,6 +5937,13 @@
Text
Debug
+
+ Name
+ mozSanitizingSerializer.cpp
+ MacOS
+ Text
+ Debug
+
Name
nsDOMCSSRGBColor.cpp
@@ -7024,6 +7043,11 @@
nsWyciwygProtocolHandler.cpp
MacOS
+
+ Name
+ mozSanitizingSerializer.cpp
+ MacOS
+
Name
nsDOMCSSRGBColor.cpp
@@ -7262,6 +7286,12 @@
nsContentAreaDragDrop.cpp
MacOS
+
+ content.shlb
+ Name
+ mozSanitizingSerializer.cpp
+ MacOS
+
build