Xpra: Ticket #500: small tooltip windows have transparency issues

Some websites have a small pop-up that will display information, such as time since a post, information about a link, etc. etc.. In Xpra certain browsers will cause them to display a cross-hatching of colored lines before moving the mouse causes the proper pop-up to appear, with the lines just at the very bottom of the pop-up.

Interestingly, the pop-ups are only a problem in Chrome, not Firefox. The Firefox pop-ups are a solid white color, rather than the black (possibly partially transparent?) color in Chrome.

Currently running Xpra 0.11.x r5209 in Windows 7 64-bit. I'll attach a few screenshots to explain further.



Wed, 22 Jan 2014 20:38:03 GMT - J. Max Mena: attachment set

the bugged pop-up in Chrome.


Wed, 22 Jan 2014 20:38:24 GMT - J. Max Mena: attachment set

The pop-up working properly in Firefox


Wed, 22 Jan 2014 20:38:46 GMT - J. Max Mena: attachment set

The pop-up working on interfacelift in Chrome


Wed, 22 Jan 2014 20:39:51 GMT - J. Max Mena: attachment set

The pop-up working on twitch in chrome


Wed, 22 Jan 2014 20:41:08 GMT - J. Max Mena: attachment set

Pop up working semi-properly on bmwusa after moving the mouse


Wed, 22 Jan 2014 20:41:37 GMT - J. Max Mena: attachment set

pop-up showing colors after moving mouse on twitch


Wed, 22 Jan 2014 20:43:03 GMT - J. Max Mena:

I forgot to mention in the original post, but in some websites the pop-ups behave as expected in Chrome, and in others it shows up bugged. I'm not sure yet why.


Thu, 23 Jan 2014 00:29:13 GMT - Antoine Martin: owner changed

I don't think the colour (black vs white) is relevant here: browsers are free to style alt tags as they wish, it may just be how those two browsers do it. You can verify this by running the browser natively (without involving xpra).


Thu, 23 Jan 2014 12:48:39 GMT - Antoine Martin: priority changed

Raising the priority: I'm waiting to hear on this bug to release 0.11.1


Thu, 23 Jan 2014 18:05:53 GMT - J. Max Mena:

To answer your questions:

Interestingly instead of turning normal when you move the mouse like it does in the screenshot, the text just shifts over a couple of pixels to the right.

How do I use xpra info|grep window?


Thu, 23 Jan 2014 18:33:18 GMT - J. Max Mena:

Okay, Alex showed me how to use it. I'll attach the relevant .txt.


Thu, 23 Jan 2014 18:33:58 GMT - J. Max Mena: attachment set

the file generated after running "xpra info | grep window > xprainfo.txt"


Fri, 24 Jan 2014 05:12:16 GMT - Antoine Martin: owner, status changed

Thanks for the details, so this is not transparency or GL related, only raw RGB has this problem. From the xpra info log, the tooltip window is (I'm only showing the most relevant bits):

window[34].window-type=('TOOLTIP',)
window[34].total_frames[rgb24]=1
window[34].total_pixels[rgb24]=4002
window[34].size=(174, 23)
window[34].override-redirect=True
window[34].has-alpha=True
window[34].encoding=h264
window[34].encoding.last_used=rgb24

Human readable summary: the window is a TOOLTIP override-redirect window and we only send a single pixel update (174x23=4002) which is using rgb24 because it is small enough, and not rgb32 because the client probably does not support it (win32 I assume). The global encoding seems to be set to h264, but we never create a video context for small transient windows like these.

And judging by the screenshot, it looks like the rgb24 data is being processed as if it was rgb32. This is strange but at least now I know where to look.


Fri, 24 Jan 2014 05:48:41 GMT - Antoine Martin: summary changed

Updated the bug title: it isn't with ALT tags, at least not in chrome, but with title tags (on both images and links). A good page to test this is: links-testing. I get the tooltip to show with chrome on tests: 13, 11, 10 (image only), 9, 8 (image only), 6, 5, 4, 3, 2


Fri, 24 Jan 2014 05:54:11 GMT - Antoine Martin: attachment set

simplest html test case possible


Fri, 24 Jan 2014 08:34:59 GMT - Antoine Martin:

Fixed in r5262 (r5263 for v0.11.x branch) by not sending alpha: we tell the server we don't handle RGBA on win32 or OSX, this means we strip the alpha server side. The reason why we didn't do this normally is that:

In the process of debugging, I cleaned up the GL codepath: r5261


I am keeping this ticket open because we should be able to handle RGBA pixels client side, even when we don't actually paint the alpha channel. May be related to #521


Mon, 24 Feb 2014 23:11:15 GMT - alas:

I am still seeing this issue on chrome (and lazarus) with osx client 0.12.0 r5531 and fedora 19 server 0.12.0 r 5531. Interestingly though, with firefox the tooltips are behaving as expected.

With chrome:

window[56].window-type=('TOOLTIP',)
window[56].total_frames[png]=1
window[56].total_pixels[png]=3772
window[56].size=(164, 23)
window[56].override-redirect=True
window[56].has-alpha=True
window[56].encoding=png
window[56].encoding.last_used=png

With firefox:

window[57].window-type=('TOOLTIP',)
window[57].total_frames[png]=1
window[57].total_pixels[png]=3744
window[57].size=(156, 24)
window[57].override-redirect=True
window[57].has-alpha=False
window[57].encoding=png
window[57].encoding.last_used=png

Thu, 27 Feb 2014 10:26:09 GMT - Antoine Martin: milestone set

As expected this is because of the alpha channel: firefox doesn't use alpha but chrome does (look for has-alpha).


Fri, 28 Feb 2014 09:33:16 GMT - Antoine Martin: owner, status changed

Lots of fixes in this area: r5624, r5625, r5626, r5627 and some more in ticket:521#comment:4


So, the core issue was that we were converting BGRX to RGBX but still sending it as rgb24, and it needs to be rgb32 instead.


Most of the important fixes have been backported.

afarr: Feel free to close this ticket if everything works as expected, and if you have time please also check #521


Thu, 06 Mar 2014 21:17:23 GMT - alas:

Bad news... with 0.12.0 r5692 osx client and 0.12.0 r5711 fedora 19 server I'm still seeing the buggy Alpha dsiplay on tooltips with chrome and lazarus. (I'll attach a screenshot.)

Are the fixes meant to fix that? Is there some way to override the alpha for tooltips?

The interesting (but unsurprising now) bits of xpra info | grep window:

window[26].has-alpha=True
window[26].window-type=('TOOLTIP',)
window[26].total_frames[png]=2
window[26].total_pixels[png]=12282
window[26].override-redirect=True
window[26].size=(267, 23)
window[26].override-redirect=True
window[26].encoding=png

Thu, 06 Mar 2014 21:19:48 GMT - alas: attachment set

r5692 osx client chrome/lazarus tooltips still misbehaving


Fri, 07 Mar 2014 14:09:03 GMT - Antoine Martin: owner, status changed

AFAICT, this is a different bug with the exact same symptom, as it only occurs on OSX now. win32 is now fine and it wasn't before.

Which means that I will probably have to blacklist OSX for 32-bit RGB support. But I am now blocked by #529. Oh joy.


Thu, 13 Mar 2014 09:04:32 GMT - Antoine Martin: owner, status changed

Help... with r5760 on server and client, I just cannot reproduce this at all now. Which is odd because I haven't made any changes that should have fixed this (and I've just skimmed the list of changes since r5700), and I was seeing the problem 6 days ago!?

I also hacked my server to remove other encodings completely (to make sure only rgb would get used), tried other encodings, etc. No luck!?

Can you still reproduce?


Thu, 13 Mar 2014 14:49:56 GMT - Antoine Martin:

Got it at last! (by trying various archived beta builds to narrow things down), counterintuitively this is a real bug that has been there for much longer but only came to the surface because packaging problems on OSX prevented the inclusion of PIL (Python Imaging Library) in the disk image (and recent build improvements fixed that - which made the bug disappear from view). Without PIL, the code reverts to the slower GDK image loading code... which did not deal with rgb32 and assumed the data could only be rgb24... r5771 fixes that.

In order to test this alternative codepath, you need to run a client without PIL installed (for example by removing PIL from the installation image) or using the environment variable: XPRA_USE_PIL=0 xpra attach ...

Feel free to just test that things look good instead, and close this ticket.


Tue, 18 Mar 2014 20:22:49 GMT - alas: status changed; resolution set

Ok, testing with XPRA_USE_PIL=0 the tooltips display as expected with all browsers (including with opengl=on).

Closing.


Sat, 23 Jan 2021 04:57:29 GMT - migration script:

this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/500