1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
7 * nsIContentSerializer implementation that can be used with an
8 * nsIDocumentEncoder to convert an HTML (not XHTML!) DOM to an HTML
9 * string that could be parsed into more or less the original DOM.
12 #ifndef nsHTMLContentSerializer_h__
13 #define nsHTMLContentSerializer_h__
15 #include "mozilla/Attributes.h"
16 #include "nsXHTMLContentSerializer.h"
17 #include "nsIEntityConverter.h"
23 class nsHTMLContentSerializer
: public nsXHTMLContentSerializer
{
25 nsHTMLContentSerializer();
26 virtual ~nsHTMLContentSerializer();
28 NS_IMETHOD
AppendElementStart(mozilla::dom::Element
* aElement
,
29 mozilla::dom::Element
* aOriginalElement
,
30 nsAString
& aStr
) MOZ_OVERRIDE
;
32 NS_IMETHOD
AppendElementEnd(mozilla::dom::Element
* aElement
,
33 nsAString
& aStr
) MOZ_OVERRIDE
;
35 NS_IMETHOD
AppendDocumentStart(nsIDocument
*aDocument
,
36 nsAString
& aStr
) MOZ_OVERRIDE
;
39 virtual void SerializeHTMLAttributes(nsIContent
* aContent
,
40 nsIContent
*aOriginalElement
,
41 nsAString
& aTagPrefix
,
42 const nsAString
& aTagNamespaceURI
,
47 virtual void AppendAndTranslateEntities(const nsAString
& aStr
,
48 nsAString
& aOutputStr
) MOZ_OVERRIDE
;
53 NS_NewHTMLContentSerializer(nsIContentSerializer
** aSerializer
);