From 0266fce802f90cfbb5d11028fda0eb8d0883c4da Mon Sep 17 00:00:00 2001 From: "cbiesinger%web.de" Date: Wed, 1 Jun 2005 19:19:01 +0000 Subject: [PATCH] 295279 pass the origin charset of the URI to the error page, esp. for use by embeddors patch by Christian Persch r=biesi sr=bz a=shaver git-svn-id: svn://10.0.0.236/trunk@173961 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/docshell/base/nsDocShell.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/mozilla/docshell/base/nsDocShell.cpp b/mozilla/docshell/base/nsDocShell.cpp index 7f3c74563ad..b04b4c85454 100644 --- a/mozilla/docshell/base/nsDocShell.cpp +++ b/mozilla/docshell/base/nsDocShell.cpp @@ -3005,20 +3005,20 @@ nsDocShell::LoadErrorPage(nsIURI *aURI, const PRUnichar *aURL, mOSHE = mLSHE; } - nsAutoString url; + nsCAutoString url; + nsCAutoString charset; if (aURI) { // Set our current URI SetCurrentURI(aURI); - nsCAutoString uri; - nsresult rv = aURI->GetSpec(uri); + nsresult rv = aURI->GetSpec(url); + rv |= aURI->GetOriginCharset(charset); NS_ENSURE_SUCCESS(rv, rv); - CopyUTF8toUTF16(uri, url); } else if (aURL) { - url.Assign(aURL); + CopyUTF16toUTF8(aURL, url); } else { @@ -3027,7 +3027,8 @@ nsDocShell::LoadErrorPage(nsIURI *aURI, const PRUnichar *aURL, // Create a URL to pass all the error information through to the page. - char *escapedUrl = nsEscape(NS_ConvertUTF16toUTF8(url.get()).get(), url_Path); + char *escapedUrl = nsEscape(url.get(), url_Path); + char *escapedCharset = nsEscape(charset.get(), url_Path); char *escapedError = nsEscape(NS_ConvertUTF16toUTF8(aErrorType).get(), url_Path); char *escapedDescription = nsEscape(NS_ConvertUTF16toUTF8(aDescription).get(), url_Path); @@ -3049,12 +3050,15 @@ nsDocShell::LoadErrorPage(nsIURI *aURI, const PRUnichar *aURL, errorPageUrl.AppendASCII(escapedError); errorPageUrl.AppendLiteral("&u="); errorPageUrl.AppendASCII(escapedUrl); + errorPageUrl.AppendLiteral("&c="); + errorPageUrl.AppendASCII(escapedCharset); errorPageUrl.AppendLiteral("&d="); errorPageUrl.AppendASCII(escapedDescription); nsMemory::Free(escapedDescription); nsMemory::Free(escapedError); nsMemory::Free(escapedUrl); + nsMemory::Free(escapedCharset); nsCOMPtr errorPageURI; nsresult rv = NS_NewURI(getter_AddRefs(errorPageURI), errorPageUrl);