Closed Bug 220846 Opened 22 years ago Closed 22 years ago

Change of Window Configuration affect on Character Coding

Categories

(Thunderbird :: Mail Window Front End, defect)

x86
Windows XP
defect
Not set
minor

Tracking

(Not tracked)

RESOLVED FIXED
Thunderbird0.4

People

(Reporter: gorky, Assigned: mscott)

References

Details

Attachments

(1 file)

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5) Gecko/20030925 Firebird/0.7 Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5) Gecko/20030924 Thunderbird/0.3 After change of window configuration letters with diacritical marks in messages are displaing with errors (it displays "ż","ę", "ś", "ź", "ć" etc.). This happends only when you change window configuration while one of the messsages is in preview pane. If you change window configuration when you're on start page everything is OK. When you restart Thunderbird things go back to normal (letters are displaing correctly). I'll show you how to reproduce it in polish language letters example Reproducible: Always Steps to Reproduce: 1. Set Central European (ISO-8859-2) Character Coding in Drafts Folder properties, and check "apply to all messages in the folder" 2. Write new message using Polish language letters(ą,ć,ę,ł,ń,�,ś,ż,ź), set Central European (ISO-8859-2) Character Coding and save it 3. Go to drafts folder and view the message 4. Go to General in Options and change window configuration, click OK I saw this first in 2003-08-29 build, and it appears in every build from then. I don't know if this is in earlier builds (I just don't check it). I'm using Thunderbird on default theme, without any extensions.
triaging.
Status: NEW → ASSIGNED
Target Milestone: --- → Thunderbird0.4
*** Bug 226717 has been marked as a duplicate of this bug. ***
the act of changing the layout, causes us to get a new docshell for the message pane which we then re-root back into our document. For some reason, the new docshell no longer handles charsets correctly.
I have not figured out why the docshell loses charset information after switching panes yet. This will make a good release note item for 0.4
Here's something weird: After changing the layout, I notice the problem that we don't show non ascii characters correctly anymore in the message body docshell. If I manually change the character encoding from whatever it really is over to "UTF-8" via the View / Character Encoding menu, then the message is restored to its previous state.
#5 Well, i've checked it on message with ISO 8859-2 character coding, and this override don't work for me. (checked on WinXP, Tb 0.4RC1 Repin 1 and Respin 2)
Attached patch the fixSplinter Review
This fixes the problem. By clearing mCurrentDisplayCharset when we reset the docshell on the message pane, we then allow nsMessenger::SetDisplayCharset to later reset the character set on the docshell. There is one catch to this patch. The message you are currently viewing still shows up wrong in the message pane. But any other message loaded or reloaded in that window renders correctly. This is because when we reset the charset on this new docshell, we don't have a content viewer to also set the charset on until after we've loaded at least one message in it.
Attachment #136755 - Flags: superreview?(bienvenu)
The patch makes more sense if you see the definition of SetDisplayCharset. NS_IMETHODIMP nsMessenger::SetDisplayCharset(const char * aCharset) { if (mCurrentDisplayCharset.Equals(aCharset)) return NS_OK; // libmime always converts to UTF-8 (both HTML and XML) if (mDocShell) { nsCOMPtr<nsIContentViewer> cv; mDocShell->GetContentViewer(getter_AddRefs(cv)); if (cv) { nsCOMPtr<nsIMarkupDocumentViewer> muDV = do_QueryInterface(cv); if (muDV) muDV->SetForceCharacterSet(nsDependentCString(aCharset)); mCurrentDisplayCharset = aCharset; } } return NS_OK; }
Attachment #136755 - Flags: superreview?(bienvenu) → superreview+
Umm. Let me correct my self. After change to UTF-8 message is still displaying with errors, but this is different type of errors. See this: http://www.volvox.neostrada.pl/inne/tb-bug.gif When i load other message with ISO 8859-2 character coding, it's displaying with "old" errors (middle area in the picture).
fix checked in
Status: ASSIGNED → RESOLVED
Closed: 22 years ago
Resolution: --- → FIXED
The bug is here in Mozilla Thunderbird 0.5 (20040207). Should it be reopened? Changing the layout (view->layout) displays gibberish intead of a message with intl. chars until the message is reloaded. Reproducible: yup. Steps to reproduce: 0. (make sure View->Layout->Classic View checked) 1. Get a message with intl. (cyrillic) chars. 2. Click View->Layout->Wide View Actual results: you see gibberish, not the message Expected results: you see the message, not gibberish. Additional notes: 1. buggy when switching: classic<->wide; wide<->vertical. [1] ok for: classic<->vertical. [2] 2. Buggy for both HTML & plain text. 3. Just noticed: the mail start page goes away when switching layouts. (same, it goes away when switching [1], not [2]) 4. example: Äîðîãèå äðóçüÿ! becomes à?àÎá?àÎàÃàÈàÅ àÄá?á?àÇá?á?!
Bug still exists in 20040226 (win32) build. This should be reopened.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: