diff --git a/mozilla/content/html/content/src/nsGenericHTMLElement.cpp b/mozilla/content/html/content/src/nsGenericHTMLElement.cpp
index 2831f2bcbde..ca48cf3af31 100644
--- a/mozilla/content/html/content/src/nsGenericHTMLElement.cpp
+++ b/mozilla/content/html/content/src/nsGenericHTMLElement.cpp
@@ -871,12 +871,19 @@ nsGenericHTMLElement::GetInnerHTML(nsAString& aInnerHTML)
this)));
nsresult rv = NS_OK;
+ nsAutoString contentType;
+ doc->GetContentType(contentType);
+
nsCOMPtr docEncoder;
- docEncoder = do_CreateInstance(NS_DOC_ENCODER_CONTRACTID_BASE "text/html");
+ docEncoder =
+ do_CreateInstance(PromiseFlatCString(
+ nsDependentCString(NS_DOC_ENCODER_CONTRACTID_BASE) +
+ NS_ConvertUTF16toUTF8(contentType)
+ ).get());
NS_ENSURE_TRUE(docEncoder, NS_ERROR_FAILURE);
- docEncoder->Init(doc, NS_LITERAL_STRING("text/html"),
+ docEncoder->Init(doc, contentType,
nsIDocumentEncoder::OutputEncodeBasicEntities |
// Output DOM-standard newlines
nsIDocumentEncoder::OutputLFLineBreak |