diff --git a/mozilla/content/html/document/src/nsHTMLDocument.cpp b/mozilla/content/html/document/src/nsHTMLDocument.cpp index edba2841b73..cb6432ee0c7 100644 --- a/mozilla/content/html/document/src/nsHTMLDocument.cpp +++ b/mozilla/content/html/document/src/nsHTMLDocument.cpp @@ -599,17 +599,6 @@ nsHTMLDocument::StartDocumentLoad(const char* aCommand, nsCOMPtr dcInfo; docShell->GetDocumentCharsetInfo(getter_AddRefs(dcInfo)); - PRBool override = PR_FALSE; - - nsCOMPtr prf(do_GetService(NS_PREF_PROGID)); - if (prf) { - char * toOverride = nsnull; - if(NS_SUCCEEDED(prf->CopyCharPref("intl.charset.override", &toOverride))) - { - if (toOverride[0] != 0) override = PR_TRUE; - PR_FREEIF(toOverride); - } - } // // The following logic is mirrored in nsWebShell::Embed! @@ -699,12 +688,13 @@ nsHTMLDocument::StartDocumentLoad(const char* aCommand, Recycle(forceCharsetFromWebShell); //TODO: we should define appropriate constant for force charset charsetSource = kCharsetFromPreviousLoading; - } else if ((dcInfo.get() != NULL) && (override)) { + } else if (dcInfo) { nsCOMPtr csAtom; dcInfo->GetForcedCharset(getter_AddRefs(csAtom)); if (csAtom.get() != NULL) { csAtom->ToString(charset); charsetSource = kCharsetFromPreviousLoading; + dcInfo->SetForcedCharset(NULL); } } } diff --git a/mozilla/intl/chardet/src/nsDocumentCharsetInfo.cpp b/mozilla/intl/chardet/src/nsDocumentCharsetInfo.cpp index 89da249de30..d30d968f4b6 100644 --- a/mozilla/intl/chardet/src/nsDocumentCharsetInfo.cpp +++ b/mozilla/intl/chardet/src/nsDocumentCharsetInfo.cpp @@ -85,6 +85,7 @@ NS_IMETHODIMP nsDocumentCharsetInfo::SetForcedCharset(nsIAtom * aCharset) NS_IMETHODIMP nsDocumentCharsetInfo::GetForcedCharset(nsIAtom ** aResult) { *aResult = mForcedCharset; + if (mForcedCharset) NS_ADDREF(*aResult); return NS_OK; } diff --git a/mozilla/layout/html/document/src/nsHTMLDocument.cpp b/mozilla/layout/html/document/src/nsHTMLDocument.cpp index edba2841b73..cb6432ee0c7 100644 --- a/mozilla/layout/html/document/src/nsHTMLDocument.cpp +++ b/mozilla/layout/html/document/src/nsHTMLDocument.cpp @@ -599,17 +599,6 @@ nsHTMLDocument::StartDocumentLoad(const char* aCommand, nsCOMPtr dcInfo; docShell->GetDocumentCharsetInfo(getter_AddRefs(dcInfo)); - PRBool override = PR_FALSE; - - nsCOMPtr prf(do_GetService(NS_PREF_PROGID)); - if (prf) { - char * toOverride = nsnull; - if(NS_SUCCEEDED(prf->CopyCharPref("intl.charset.override", &toOverride))) - { - if (toOverride[0] != 0) override = PR_TRUE; - PR_FREEIF(toOverride); - } - } // // The following logic is mirrored in nsWebShell::Embed! @@ -699,12 +688,13 @@ nsHTMLDocument::StartDocumentLoad(const char* aCommand, Recycle(forceCharsetFromWebShell); //TODO: we should define appropriate constant for force charset charsetSource = kCharsetFromPreviousLoading; - } else if ((dcInfo.get() != NULL) && (override)) { + } else if (dcInfo) { nsCOMPtr csAtom; dcInfo->GetForcedCharset(getter_AddRefs(csAtom)); if (csAtom.get() != NULL) { csAtom->ToString(charset); charsetSource = kCharsetFromPreviousLoading; + dcInfo->SetForcedCharset(NULL); } } }