Closed Bug 764083 Opened 12 years ago Closed 8 months ago

[OS X] Add Retina Display support to Thunderbird [mac HiDPI]

Categories

(Thunderbird :: General, defect)

x86
macOS
defect

Tracking

(Not tracked)

RESOLVED WORKSFORME

People

(Reporter: Nomis101, Unassigned)

References

Details

Attachments

(4 files)

Must be similar as Bug 674373 for Firefox.

Background: Apple added support into Safari, Mail and a few other apps for new Macs with Retina display. A Retina display is a high resolution (HiDPI) display.

Documentation:
https://developer.apple.com/library/mac/#documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Introduction/Introduction.html
See also Bug 763918
Attachment #632362 - Flags: review?(mbanner)
Comment on attachment 632362 [details] [diff] [review]
add NSPrincipalClass entry

I know I can't test this, but given FF have landed this, I think it is fine to land it for Thunderbird as well, so r=me.
Attachment #632362 - Flags: review?(mbanner) → review+
This patch seems only to be a prerequisite, as you can read in https://bugzilla.mozilla.org/show_bug.cgi?id=674373#c28 and https://bugzilla.mozilla.org/show_bug.cgi?id=674373#c31
So, after landing this first patch, this bug seems not yet fixed (whatever will come after that, I will also try to port this in this bug).
Keywords: checkin-needed
I tried the patch (Comment 2) with Thunderbird 13.0.1 on a MacBook Pro Retina and it makes a huge improvement (in comparison to Firefox where not much changes). With the patch the text is displayed in HiHPI, although of course the icons are still pixel-doubled (I'd class that as a minor issue, requires artwork to be regenerated).
Nice to know. :) Apart from the artwork, do you see other areas which needs some work for HiDPI?
I don't see any other areas requiring work for HiDPI. If the artwork was never upgraded I wouldn't be greatly concerned (the text was the big issue).
The patch in comment 2 made a huge improvement for me too, except for minor artwork it's as good as a retina app.

For those following along, what I did:
-found Thunderbird in my Applications folder (with Thunderbird not running)
-right click and select "Show package contents"
-in Contents folder, open the "Info.plist" file in TextEdit
-using the content in comment 2 above, find the right place in Info.plist to add the two lines that start with "+" signs in the patch. But don't include the + signs in the final file
-save and close it all. Find the Thunderbird app in Applications folder again, and make a copy. Delete the original and rename the copy to the same name as the original. This, I believe, clears some caches
-Enjoy!
(In reply to paul from comment #9)
Thank you Paul for the detailed instructions. Works like a charm!
This ports the "OpenGL antialiasing HiDPI patch" from Bug 674373. I will ask for review for this after the original patch has r+.
Just tried the workaround provided by Paul Cook (Comment 9). Works great on the retina display. However, with a secondary display (non-HiDPI, res 1680x1050) also hooked on the max, thunderbird appears blurry when shown on the secondary display. Any thought?
(In reply to tom.vercauteren from comment #12)
> Just tried the workaround provided by Paul Cook (Comment 9). Works great on
> the retina display. However, with a secondary display (non-HiDPI, res
> 1680x1050) also hooked on the max, thunderbird appears blurry when shown on
> the secondary display. Any thought?
Seems this is an Apple Bug:
http://forums.macrumors.com/showthread.php?t=1387571
http://avatron.com/forums/read.php?9,15142

Nevertheless you should be clear, that full Retina support is not included into Core yet. If you want to test (mainly) Retina support of a Mozilla application, you can test the Firefox try build from https://bugzilla.mozilla.org/show_bug.cgi?id=674373#c151 which includes most Retina patches.
Blocks: 781333
Depends on: 674373
(in reply to Nomis101 à propos blurry text on a non-retina display)
No, it's not that Apple bug. Every other app works fine, this bug is specific to Thunderbird. On an external monitor, it affects text everywhere but in the message body panel (which is rendered normally). It is mostly annoying in the list of message titles.

Other than that, this quick plist addition works great on the retina display.
(in reply to Nomis101 comment #13)
This is not the bug I am facing as this blurryness was specific to thunderbird

(Regarding upgrade to Thunderbird 15.0)
The upgrade to Thunderbird 15.0 discards the modifications made locally to the info.plist. Reapplying the method from comment #9 using both patches from comment #2 and comment # 11 works quite nice. I believe the patch from comment #11 improves things for the secondary display problem I was referring to in comment #12. Also, simply moving Thunderbird.app in a different folder and moving it back to the Applications folder seems to clear the cache (no need to copy, delete and rename).
text blurry in latest earlybird (>=16, also 17a2 from today) despite patches from comment #2 - or only for me?
(In reply to Markus Doits from comment #16)
> text blurry in latest earlybird (>=16, also 17a2 from today) despite patches
> from comment #2 - or only for me?

test also blurry in messagepane, latest Daily:

(Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:18.0) Gecko/18.0 Thunderbird/18.0a1 ID:20120830030209
blurry in latest Daily
Just upgraded to TB 15 and the text is blurry again. The upgrade replaced the previously edited Info.plist so I had to apply the patch (in Comment #2) again. However, it's not working anymore. did I just shot myself in the foot?

If nobody knows how to fix it this time, I'll search on how to downgrade to TB14 again. Any idea?
Check that your modifications to the plist were truely applied (you may need to apply the changes attached to comment #11 too).
It works for me with TB15.
Does not work for me (even method from comment #9 with patches from comment #2 and comment #11). Looks like something is blocking it for me (tried now on 18.a1 31-08-2012).

TB 14 was good without any need for a patch. Why did this change? Looks like a regression for me.
Just a note to say that I applied #2 and #11 and Thunderbird looks _fantastic_ .

Thanks!
(sigh - Thunderbird 15, I meant to note (contrasting with the previous poster's difficulty))
#2 & #11 is already included in latest Daily (18.0a1), but still blurry
No luck!

Applied patches from comment #2 and comment #11 but my TB15 is still blurry. I've checked several times that the changes are indeed in Info.plist file. here is how it looks:

		<key>i386</key>
		<string>10.5.0</string>
		<key>x86_64</key>
		<string>10.6.0</string>
        </dict>
        <key>NSSupportsAutomaticGraphicsSwitching</key>
        <true/>
        <key>NSPrincipalClass</key>
        <string>GeckoNSApplication</string>
        <key>NSHighResolutionCapable</key>
        <true/>
	<key>UTExportedTypeDeclarations</key>
	<array>

Am I doing it right? Can someone with TB15 post his/her Info.plist file? Maybe mine is missing some other settings.
Info.plist as requested.   TB15 on my MBPr OSX 10.7 not blurry.

/Applications/Thunderbird.app/Contents/Info.plist
applying #2 & #11, or above info.plist not working on OSX 10.8.1 and Thunderbird 18.0ai (Daily)
(In reply to Martin Gregory from comment #26)
> Created attachment 657510 [details]
> Info.plist after applying #2 and #11
> 
> Info.plist as requested.   TB15 on my MBPr OSX 10.7 not blurry.
> 
> /Applications/Thunderbird.app/Contents/Info.plist

There is some problem with the file (or my safari). I cannot seem to download it. I am logged into this forum, I click on the attachment and it shows in my download folder as Info.plist.download and safari never finishes the download (even in 30 mins). Maybe you can email it to me? You can find my email address in the CC list above. The only @msn.com email address is mine. Thanks!
Now I'm going to report something bizarre. 

I replaced my Info.plist file from the one attached to comment #26 and the issue is resolved! The bizarre thing is, before replacing the file, I diff my Info.plist with the new Info.plist and they both came out exactly the same. Now, I have no clue why replacing it with a new file resolved the issue.

I then removed the new Info.plist with the old one and the issue did NOT come back. No clue what's happening. Maybe someone who understands the working on TB better knows why it's behaving this way. Anyway, my TB15 is not blurry anymore.

Suggestion to others who are seeing blurry TB since after upgrading from TB14, please download the Info.plist file from comment #23.

Hope this helps!
Sorry for the typo. I referenced a wrong comment for the new Info.plist file. Here is the right one:

Suggestion to others who are seeing blurry TB since after upgrading from TB14, please download the Info.plist file from comment #26.
Applied the Info.plist in Comment 26.

TB 15 
MacOS 10.8.1
MBP Retina

All text still very pixelated.

-Jon
Shiraz - glad it worked.   Maybe you experienced the effect described in Comment 15 - something about the need to clear a cache.    Jon West might be able to get the same effect by experimentation (I have no idea what would really be going on, I just read Comment 15 and it sounded like what happened in Comment 29(
The only thing I have left to try is a reboot.
Could TB 'cache'? Don't know.
But the new file has been there for 10+ restarts without affect. (with the NSHighRes)
I'll try reboot tonight -- or any other suggestions.

But comment 17, comment 27, comment 31 seem to imply a problem with 10.8.

Will report.

-jon
After reboot, still severely pixelated.
Can confirm that Info.plist has high resolution key after reboot.

(MPB Retina / 10.8.1 / TB 15)

-j
Same problem here.

I noticed my TB has a new file in the same folder dated August 30, 2012 that maintains code signature (hashes) for all installation files. Maybe this protection interferes with Update of comment 26?
I've just noticed that message composition windows are still blurry, even though message display windows are fine.

FWIW.
A small update...

...comment 26 was not working
(See my comment 35)
... I did the following actions

1. I removed the hash from the CodeSignature (yet not working)
2. Installed Early Bird (and tried comment 26 on the new mailer)
3. Removed Early bird (since fonts were not working even of this version)
4. Rebooted (during reboot the system installed a patch 10.8.1)

5. After reboot retina quality fonts worked.

I do not know which operation triggered the new fonts, but I wished to let you know.

Fonts works even in the composition window.

Best
C.Alberto
SOLVED!

Using Comment 2 and then steps 1 & 4 in Comment 37 
I've got all retina quality text in TB folders, lists, preview and composition.

To be clear, in:

/Applications/Thunderbird.app/Contents/Info.plist

I added: 
<key>NSHighResolutionCapable</key>
<true/>

[restart of TB, and Reboot of Machine did not pick it up]

So, in:
/Applications/Thunderbird.app/Contents/_CodeSignature/CodeResources

I simply deleted the data for the Info.plist key.

Before:
<plist version="1.0">
<dict>
         <key>files</key>
         <dict>
                   <key>Info.plist</key>
                   <data>s0m3-cr4zy-5tr!ng</data>
...
After:
<plist version="1.0">
<dict>
         <key>files</key>
         <dict>
                   <key>Info.plist</key>
                   <data></data>
...

Reboot machine (restart TB alone did not work).

Thanks, guys.

Now to figure out Office.

Jon
Auto Upgrade to 15.0.1 undoes everything and you'll have to start back at square one.
Lovely.

-jon
I'm unable to fix now using the steps in Comment 39 after applying update 15.0.1

Thoughts?
-j
I have seen this issue several times. the behavior is not predictable. However, my tb5 to tb5.0.1 upgrade did not reset my retina configuration in plist. Tb16 gave me real tough time though.

This is what you can try after making appropriate changes to your info.plist file.

Quit tb
Go to terminal
Go inside application directory
Use 'touch' command to update the time stamp on thunderbird.app file (E.g sudo touch thunderbird.app)
Then start tb again

Post back the results
Blocks: 795616
Blocks: 795617
Bug 674373 was fixed today, there was no part I've found which needs to be port to Thunderbird (but one for SeaMonkey). So TB trunk builds should now support HiDPI much better. Remaining issues are bug 794038 and bug 785667. If there also will be nothing to port, I will close this Bug as fixed. The only things that needs to be fixed for TB are Bug 781333 and Bug 795617.
No longer blocks: 795616, 795617
Blocks: 795617
I've repeated the steps in Comment 37 and Comment 41 without any luck. Since upgrading to 15.0.1 I'm back to square-one.
That's me again

my TB is working after 15.0.1 upgrade. It took me a while (repeated the procedure, a couple of times) since the procedure that worked the 1st time din not worked this time.

Basically I applied to previous comments plus a procedure found to make Office working with retina. MAC caches the application definition until it found the application has changed. 

What I found was:

1. copy the .app folder to the desktop, delete the original ".app" folder and then move the copy back to the original position.
2. To avoid problems the signature of the Info.Plist file the key has to be deleted from CodeResources file.
3. Finally a reboot is indicated after these changes to avoid something is still in memory.

That worked for me 

(A: I will not update TB again until this problem will be officially solved).
(B: The same trick also works to put firefox in retina mode after update)

I hope this could work also for you.
Best regards,
C.Alberto

Here there are additional hints I found on the web (I did not used them):

Someone (in the office discussion group) suggests to issue the "touch" command on the application files to force OSX to clear its application cache.

Others suggest also to issue a Purge command form terminal to clear memory buffers (A reboot also does the same).
That's me again

my TB is working after 15.0.1 upgrade. It took me a while (repeated the procedure, a couple of times) since the procedure that worked the 1st time din not worked this time.

Basically I applied to previous comments plus a procedure found to make Office working with retina. MAC caches the application definition until it found the application has changed. 

What I found was:

1. copy the .app folder to the desktop, delete the original ".app" folder and then move the copy back to the original position.
2. To avoid problems the signature of the Info.Plist file the key has to be deleted from CodeResources file.
3. Finally a reboot is indicated after these changes to avoid something is still in memory.

That worked for me 

(A: I will not update TB again until this problem will be officially solved).
(B: The same trick also works to put firefox in retina mode after update)

I hope this could work also for you.
Best regards,
C.Alberto

Here there are additional hints I found on the web (I did not used them):

Someone (in the office discussion group) suggests to issue the "touch" command on the application files to force OSX to clear its application cache.

Others suggest also to issue a Purge command form terminal to clear memory buffers (A reboot also does the same).
All the patches seem to be Mac only. What about other OSes? I think You can run Linux on the Mac hardware too.
You can run Linux, but I doubt that there are any distros that support hidpi(ie pixel-doubled) resolutions at all. Even if there is one, there's no standard support at all. If you're just running at the native resolution of the screen, then there's no issue.
(In reply to :aceman from comment #46)
> All the patches seem to be Mac only. What about other OSes? I think You can
> run Linux on the Mac hardware too.
Because "Retina Display" is a brand name from Apple and Macs mostly running with OS X, this is Mac only. You also need some Core work, which is only (mostly) done for Mac.
I've made the summary more clear.
Summary: Add Retina Display support to Thunderbird → [OS X] Add Retina Display support to Thunderbird
Earlybird has been very laggy since a few days when I use it on my rMBP.
When I type, it takes about half a second to display each letter.

But I'm not having this issue when I'm on dual-screen, even if Earlybird is on the Retina display.
(In reply to Arthur Roussel from comment #49)
> Earlybird has been very laggy since a few days when I use it on my rMBP.
> When I type, it takes about half a second to display each letter.

I've noticed this as well. It's almost unusable if I look at the screen. It's buffering keystrokes, though. If I don't look, I can get many lines ahead.

Nightly with retina support hasn't been that snappy either, but it's nowhere near as bad as Earlybird. (I'm typing this in nightly and it's keeping up with keystrokes.)
(In reply to Zandr Milewski [:zandr] from comment #50)
> (In reply to Arthur Roussel from comment #49)
> > Earlybird has been very laggy since a few days when I use it on my rMBP.
> > When I type, it takes about half a second to display each letter.
> 
> I've noticed this as well. It's almost unusable if I look at the screen.
> It's buffering keystrokes, though. If I don't look, I can get many lines
> ahead.
> 
> Nightly with retina support hasn't been that snappy either, but it's nowhere
> near as bad as Earlybird. (I'm typing this in nightly and it's keeping up
> with keystrokes.)

Indeed, but I remembered that I'm typing my emails on the non-Retina screen while in dual-screen, so I guess it's really a Retina-related thing.

Everything I do is buffered too, just slow to appear.
So, proving that I have no idea how the Mac decides to render fonts...

I just tested the latest Daily to see if it was still slow. (It is.)

I then launched Thunderbird (16.0.1) and am getting Retina font rendering and good performance.  No idea what's going on, but perhaps this is useful info to someone more familiar with the guts of this.
Using the latest Earlybird build, when drag and dropping a folder from a place to another in the sidebar, the cursor is not changing and you're never really sure you're actually dragging something.

Also, when typing a new message, the icons to edit the text (bold, italic and so on), are weirdly stretched. This happens since a few days.
I applied the suggested changes to Thunderbird 17.0 and things look good on my Retina LCD with the "Best for Retina" setting. But when I move Thunderbird to the external monitor (that is not scaled) text looks blurry. It looks blurry on the external monitor even if I don't apply changes as well.

If I open Thunderbird on the external monitor then it looks fine there, but looks blurry when moved to the Retina LCD.
(In reply to David Rees from comment #54)
> I applied the suggested changes to Thunderbird 17.0 and things look good on
> my Retina LCD with the "Best for Retina" setting. But when I move
> Thunderbird to the external monitor (that is not scaled) text looks blurry.
> It looks blurry on the external monitor even if I don't apply changes as
> well.
> 
> If I open Thunderbird on the external monitor then it looks fine there, but
> looks blurry when moved to the Retina LCD.
This is known and fixed for Gecko 19 and up in Bug 794038.
Blocks: 819750
I believe that this has been fixed in the nightlies for a good while now. We even include retina artwork :)
I don't have a retina Mac, so I can't test. But if somebody with a Retina Mac could test the latest nightly if everything looks fine, this would help to decide if this is fixed. If everything looks fine, also on a second Monitor (Bug 794038), what happens in fullscreen mode (Bug 799523) or what happens if you zoom (Bug 800668), does a combination of <html style="background-attachment: fixed"> and <input type=submit> work (Bug 806059) and something like this.
Mmh. I just tried today's Earlybird, but I don't get the retina artwork. Did I miss something?
Besides, sorry for being thick, but I'm unsure how you'd test for bugs 799523 or 806059 in TB (and not in Firefox).
I have a retina MBP, and the March 16 2013 Daily build looks completely retina-optimized. I haven't seen anything that is *not* retina-ready. I can't test with a second monitor, unfortunately.

Full-screen mode works properly. Zoom also works properly.
I'm afraid I do not have retina artwork on my rMBP, either with the March 16th or latest version (OS 10.8.2).

I tried the multi-monitor setup. Things are globally correct, but when you have a window that overlaps the rMBP display and the external display, then things are still a bit rough:
1) If you move the window towards the external monitor you often get a twice as small window transiently appearing, and conversely in the other direction (twice as large text 'flashed'). 
2) After this transient, you either get pixelated text in the rMBP half, or retina-quality text, whether more than half the window sits on the external monitor or on the rMBP display. Curiously, when more than half the window is on the rMBP display you get proper retina text AND properly scaled text on the external monitor, which shows that this should be possible to get in all conditions (i.e. even when most of the window sits on the external display).
@Pierre Baraduc: If you look at this screenshot, does it look correct on your retina?
Oops, my comments 59 and 61 applied to Earlybird (21.0) and not Daily (22.0). Actually I had said it in comment 59, but sorry for the misunderstanding. I indeed get retina artwork in 22.0. I don't find the left-panel icons very appealing (esp. the trash) but that's another matter.

I'll re-check the multi-monitor performance as soon as I can.
Update on external monitors: the behavior I described with for Earlybird (21.0) can be exactly reproduced with Daily (22.0).

I also noticed when more than half of the window is drawn on the external monitor, low-res versions of the icons are used for the external monitor part, whereas when more than half sits on the retina display, downscaled high-res versions are used on the external monitor (I noticed this because the "send" icon has a markedly different appearance in HiDPI vs. standard version).

To summarize differently what is apparently happening:  

1) what is displayed on the external monitor is either a low-res content (when >50% of window content appears on external monitor) or a downscaled-to-low-res version of the HiDPI content (when <50% of window content appears on external monitor).

2)what is displayed on the integrated retina display is either an upscaled low-res content (when >50% of window content appears on external monitor) or a HiDPI content (when <50% of window content appears on external monitor).

I wonder why it couldn't be possible to get rid of this 50% limit and simply always use the second mode (applied when <50% of window content appears on external monitor). Apart from the HiDPI "send" icon, which would need to be reworked because its downscaled version looks like a simple black square, the rest is fine.
Depends on: 898523
Depends on: 898527
Depends on: 898535
Depends on: 898537
Depends on: 898541
Depends on: 898542
No longer blocks: 795617, 819750, 781333
Depends on: 795617, 819750, 781333
7 bugs still open/to go.
Can someone check if they are all still legit and need work?
(In reply to Wayne Mery (:wsmwk) from comment #65)
> 7 bugs still open/to go.
> Can someone check if they are all still legit and need work?

After a very quick check on latest beta, bug 898541 and bug 898523 are still relevant (can’t test the others right now)
Summary: [OS X] Add Retina Display support to Thunderbird → [OS X] Add Retina Display support to Thunderbird [mac HiDPI]
See Also: → 1262982
Severity: normal → S3

Alex, given our current state and direction, do you foresee wanting what remains of this, which is bug 795617, bug 898523, and bug 898527?

No longer blocks: tb-mac
Flags: needinfo?(alessandro)

I think we can safely close all these bugs.
All our icons are vectors and those that are not converted will be soon, so they can scale with HiDPI monitors.
Regarding supporting specific resolution variations, I think this is is something we inherit from Firefox, and for what I can see it works pretty well. Any improvements to the layout rendering or specific Cocoa API should happen in m-c.

Flags: needinfo?(alessandro)
Status: NEW → RESOLVED
Closed: 8 months ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: