diff --git a/content/html/document/src/nsHTMLDocument.cpp b/content/html/document/src/nsHTMLDocument.cpp
index 04c7948713da..d999899f5381 100644
--- a/content/html/document/src/nsHTMLDocument.cpp
+++ b/content/html/document/src/nsHTMLDocument.cpp
@@ -308,6 +308,9 @@ nsHTMLDocument::StartDocumentLoad(nsIURL *aURL,
nsAutoString charset = "ISO-8859-1"; // fallback value in case webShell return error
nsCharsetSource charsetSource = kCharsetFromDocTypeDefault;
+ const PRUnichar* requestCharset = nsnull;
+ nsCharsetSource requestCharsetSource = kCharsetUninitialized;
+
#ifdef rickgdebug
nsString outString; // added out. Redirect to stdout if desired -- gpk 04/01/99
@@ -324,6 +327,12 @@ nsHTMLDocument::StartDocumentLoad(nsIURL *aURL,
charset = defaultCharsetFromWebShell;
charsetSource = kCharsetFromUserDefault;
}
+ // for html, we need to find out the Meta tag from the hint.
+ rv = webShell->GetCharacterSetHint(&requestCharset, &requestCharsetSource);
+ if(NS_SUCCEEDED(rv)) {
+ if(requestCharsetSource > charsetSource)
+ charset = requestCharset;
+ }
}
NS_IF_RELEASE(webShell);
#endif
@@ -331,8 +340,6 @@ nsHTMLDocument::StartDocumentLoad(nsIURL *aURL,
// XXXX
// We should take care two more cases here
// 1. The charset attribute from HTTP header
- // 2. The charset parameter from the META Tag -
- // which explicit pass to nsWebShell from nsCharsetObserver
if (NS_SUCCEEDED(rv)) {
rv = this->SetDocumentCharacterSet(charset);
diff --git a/layout/html/document/src/nsHTMLDocument.cpp b/layout/html/document/src/nsHTMLDocument.cpp
index 04c7948713da..d999899f5381 100644
--- a/layout/html/document/src/nsHTMLDocument.cpp
+++ b/layout/html/document/src/nsHTMLDocument.cpp
@@ -308,6 +308,9 @@ nsHTMLDocument::StartDocumentLoad(nsIURL *aURL,
nsAutoString charset = "ISO-8859-1"; // fallback value in case webShell return error
nsCharsetSource charsetSource = kCharsetFromDocTypeDefault;
+ const PRUnichar* requestCharset = nsnull;
+ nsCharsetSource requestCharsetSource = kCharsetUninitialized;
+
#ifdef rickgdebug
nsString outString; // added out. Redirect to stdout if desired -- gpk 04/01/99
@@ -324,6 +327,12 @@ nsHTMLDocument::StartDocumentLoad(nsIURL *aURL,
charset = defaultCharsetFromWebShell;
charsetSource = kCharsetFromUserDefault;
}
+ // for html, we need to find out the Meta tag from the hint.
+ rv = webShell->GetCharacterSetHint(&requestCharset, &requestCharsetSource);
+ if(NS_SUCCEEDED(rv)) {
+ if(requestCharsetSource > charsetSource)
+ charset = requestCharset;
+ }
}
NS_IF_RELEASE(webShell);
#endif
@@ -331,8 +340,6 @@ nsHTMLDocument::StartDocumentLoad(nsIURL *aURL,
// XXXX
// We should take care two more cases here
// 1. The charset attribute from HTTP header
- // 2. The charset parameter from the META Tag -
- // which explicit pass to nsWebShell from nsCharsetObserver
if (NS_SUCCEEDED(rv)) {
rv = this->SetDocumentCharacterSet(charset);