diff --git a/mozilla/content/html/document/src/nsHTMLDocument.cpp b/mozilla/content/html/document/src/nsHTMLDocument.cpp index ede67f596b1..192e6380213 100644 --- a/mozilla/content/html/document/src/nsHTMLDocument.cpp +++ b/mozilla/content/html/document/src/nsHTMLDocument.cpp @@ -289,12 +289,22 @@ nsHTMLDocument::StartDocumentLoad(nsIURL *aURL, if (NS_OK == rv) { nsIHTMLContentSink* sink; + nsAutoString defaultHTMLCharset = "ISO-8859-1"; // fallback value in case webShell return error + nsCharsetSource charsetSource = kCharsetFromDocTypeDefault; + + #ifdef rickgdebug rv = NS_New_HTML_ContentSinkStream(&sink); #else NS_PRECONDITION(nsnull != aContainer, "No content viewer container"); aContainer->QueryInterface(kIWebShellIID, (void**)&webShell); rv = NS_NewHTMLContentSink(&sink, this, aURL, webShell); + if (NS_OK == rv) { + const PRUnichar* defaultFromWebShell = NULL; + rv = webShell->GetDefaultCharacterSet(&defaultFromWebShell); + defaultHTMLCharset = defaultFromWebShell; + charsetSource = kCharsetFromUserDefault; + } NS_IF_RELEASE(webShell); #endif @@ -313,6 +323,7 @@ nsHTMLDocument::StartDocumentLoad(nsIURL *aURL, // nsIDTD* theDTD=0; // NS_NewNavHTMLDTD(&theDTD); // mParser->RegisterDTD(theDTD); + mParser->SetDocumentCharset( defaultHTMLCharset, charsetSource); mParser->SetCommand(aCommand); mParser->SetContentSink(sink); mParser->Parse(aURL); diff --git a/mozilla/layout/html/document/src/nsHTMLDocument.cpp b/mozilla/layout/html/document/src/nsHTMLDocument.cpp index ede67f596b1..192e6380213 100644 --- a/mozilla/layout/html/document/src/nsHTMLDocument.cpp +++ b/mozilla/layout/html/document/src/nsHTMLDocument.cpp @@ -289,12 +289,22 @@ nsHTMLDocument::StartDocumentLoad(nsIURL *aURL, if (NS_OK == rv) { nsIHTMLContentSink* sink; + nsAutoString defaultHTMLCharset = "ISO-8859-1"; // fallback value in case webShell return error + nsCharsetSource charsetSource = kCharsetFromDocTypeDefault; + + #ifdef rickgdebug rv = NS_New_HTML_ContentSinkStream(&sink); #else NS_PRECONDITION(nsnull != aContainer, "No content viewer container"); aContainer->QueryInterface(kIWebShellIID, (void**)&webShell); rv = NS_NewHTMLContentSink(&sink, this, aURL, webShell); + if (NS_OK == rv) { + const PRUnichar* defaultFromWebShell = NULL; + rv = webShell->GetDefaultCharacterSet(&defaultFromWebShell); + defaultHTMLCharset = defaultFromWebShell; + charsetSource = kCharsetFromUserDefault; + } NS_IF_RELEASE(webShell); #endif @@ -313,6 +323,7 @@ nsHTMLDocument::StartDocumentLoad(nsIURL *aURL, // nsIDTD* theDTD=0; // NS_NewNavHTMLDTD(&theDTD); // mParser->RegisterDTD(theDTD); + mParser->SetDocumentCharset( defaultHTMLCharset, charsetSource); mParser->SetCommand(aCommand); mParser->SetContentSink(sink); mParser->Parse(aURL);