From 9f67a5131d20353a649aa01f0da8382699185c77 Mon Sep 17 00:00:00 2001 From: "bzbarsky%mit.edu" Date: Tue, 19 Jul 2005 21:11:07 +0000 Subject: [PATCH] Deal better with innerHTML for documents whose types we don't have encoders for. Bug 155723, r+sr=jst, a=bsmedberg git-svn-id: svn://10.0.0.236/trunk@176268 18797224-902f-48f8-a5cc-f745e15eee43 --- .../html/content/src/nsGenericHTMLElement.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/mozilla/content/html/content/src/nsGenericHTMLElement.cpp b/mozilla/content/html/content/src/nsGenericHTMLElement.cpp index ca48cf3af31..d65eeb1c02f 100644 --- a/mozilla/content/html/content/src/nsGenericHTMLElement.cpp +++ b/mozilla/content/html/content/src/nsGenericHTMLElement.cpp @@ -880,6 +880,18 @@ nsGenericHTMLElement::GetInnerHTML(nsAString& aInnerHTML) nsDependentCString(NS_DOC_ENCODER_CONTRACTID_BASE) + NS_ConvertUTF16toUTF8(contentType) ).get()); + if (!docEncoder) { + // This could be some type for which we create a synthetic document. Try + // again as HTML if the document is case-insensitive and as XML if it's + // case-sensitive + if (doc->IsCaseSensitive()) { + contentType.AssignLiteral("application/xml"); + docEncoder = do_CreateInstance(NS_DOC_ENCODER_CONTRACTID_BASE "application/xml"); + } else { + contentType.AssignLiteral("text/html"); + docEncoder = do_CreateInstance(NS_DOC_ENCODER_CONTRACTID_BASE "text/html"); + } + } NS_ENSURE_TRUE(docEncoder, NS_ERROR_FAILURE);