Reports of emojis not visible while typing text in textbox
Categories
(Core :: Graphics: WebRender, defect, P3)
Tracking
()
People
(Reporter: ekager, Assigned: jnicol)
References
Details
Attachments
(1 file)
Working for me here. Pixel 2 running Q.
Comment 2•5 years ago
|
||
Seems similar to bug 1502286 which was fixed months ago.
Comment 3•5 years ago
|
||
I can't reproduce this bug in Fenix 1.0.1926 (GV 68.0-20190612114833) on my Moto G5 Plus running Android 8.1.0. I'll ask the original bug reporter on GitHub.
Comment 4•5 years ago
|
||
The bug reporter says he can still reproduce this emoji bug using the Google board keyboard on his OnePlus 3T running Android 9.0 Pie:
https://github.com/mozilla-mobile/fenix/issues/3643#issuecomment-508314004
Comment 5•5 years ago
|
||
I'm moving this bug to the WebRender component because the bug reporter says the problem is caused by enabling WebRender:
https://github.com/mozilla-mobile/fenix/issues/3643#issuecomment-509966651
Updated•5 years ago
|
Comment 6•5 years ago
|
||
Jamie, can you reproduce this?
Assignee | ||
Comment 7•5 years ago
|
||
Yes, I can reproduce. Will have a look.
Comment 8•5 years ago
|
||
Comment 9•5 years ago
|
||
Lee might also have a guess at what might be happening here.
Assignee | ||
Comment 10•5 years ago
|
||
The reason emojis are visible in tweets on the timeline but not in the text box is that in the timeline they are shown as <img>s, but they are just text in the text box. Same goes for github.
So it seems like emojis simply aren't being rendered ever with webrender on android, nothing text box specific. Confirmed by a simple test page (and comment 8 seems to confirm this too.)
I will follow the code and see if I can find out where it's going wrong, unless Lee can instantly guess?
Updated•5 years ago
|
Assignee | ||
Comment 11•5 years ago
|
||
We aren't setting the FontInstanceFlags::EMBEDDED_BITMAPS flag in ScaledFontFreeType::GetWRFontInstanceOptions(), so in FontContext::load_glyph() we are forced in to taking the non-bitmap / scalable code path, which fails on android because emojis are bitmap only.
Setting the flag there causes us to take the bitmap / fixed-size path, which succeeds, and emojis are drawn correctly 🙌🙌🙌🎉🎉🎉
Assignee | ||
Comment 12•5 years ago
|
||
ScaledFontFreeType::GetWRFontInstanceOptions() was neglecting to set
the FontInstanceFlags::EMBEDDED_BITMAPS flag. This was causing us to
always take the non-bitmap path when rasterizing the glyph, which
fails on android because emoji fonts are bitmap only. Setting this
flag causes glyphs to be rendered correctly on android webrender.
Comment 13•5 years ago
|
||
Comment 14•5 years ago
|
||
bugherder |
Updated•5 years ago
|
Comment hidden (Intermittent Failures Robot) |
Description
•