Open Bug 2005440 Opened 2 months ago Updated 23 days ago

[Regression] Emojis fail to render on macOS (aarch64) in Lockdown mode - Firefox 146.0

Categories

(Core :: Graphics, defect)

Firefox 146
defect

Tracking

()

ASSIGNED
Tracking Status
firefox-esr115 --- unaffected
firefox-esr140 --- unaffected
firefox146 + wontfix
firefox147 + wontfix
firefox148 --- fix-optional
firefox149 --- fix-optional

People

(Reporter: tec.freenet, Assigned: jfkthame, NeedInfo)

References

(Regression)

Details

(Keywords: regression)

Attachments

(1 file)

User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:146.0) Gecko/20100101 Firefox/146.0

Steps to reproduce:

Environment:
Device: Mac (Apple Silicon / aarch64)
OS: macOS
Firefox Version: 146.0

Pre-check performed (Troubleshooting): I have already verified that my configuration is correct:
Settings > Fonts: "Allow pages to choose their own fonts" is ENABLED.
about:config: font.name-list.emoji is set to "Apple Color Emoji".
No emoji-blocking extensions are installed.
Verified this is NOT duplicate of Bug 1997435 (which is about the Input Picker, not rendering).

Steps:
Launch Firefox 146.0.
Navigate to Google Calendar (calendar.google.com).
Look at Event Titles or Calendar Names (in the sidebar) that contain emojis.

Actual results:

Emojis are not rendered within the Google Calendar interface. They appear as blank spaces, tofu, or generic placeholders in event titles and sidebar lists.

Note: I have specifically verified this issue on Google Calendar.

Expected results:

Firefox should correctly render the system emoji font (Apple Color Emoji), just like Safari and Chrome do on the same machine.

The Bugbug bot thinks this bug should belong to the 'Core::Widget: Cocoa' component, and is moving the bug to that component. Please correct in case you think the bot is wrong.

Component: Untriaged → Widget: Cocoa
Product: Firefox → Core
Component: Widget: Cocoa → Layout: Text and Fonts

I can't reproduce this on my macOS system (running Sonoma 14.8.1); I tried logging in to Google Calendar with Firefox 146, and created a calendar name and an event with emojis in the title. They displayed as expected.

@tec.freenet, could you please try Troubleshoot Mode (from the Help menu), and confirm whether the problem still occurs?

Also, do emojis appear on other sites such as https://emojipedia.org or in the chart at https://en.wikipedia.org/wiki/List_of_emojis?

Flags: needinfo?(tec.freenet)

Hello Jonathan, thanks for looking into this.

I performed the tests you requested:

Troubleshoot Mode: I restarted Firefox in Troubleshoot Mode. The issue persists. Emojis are still not visible within the Google Calendar interface (they appear as blank spaces/tofu), exactly as in normal mode.

Other Sites: I checked emojipedia.org and en.wikipedia.org/wiki/List_of_emojis. On these sites, emojis render correctly.

Summary: The rendering issue appears to be specific to Google Calendar on Firefox 146 (aarch64). The system font ("Apple Color Emoji") is working fine on other pages and in other browsers (Safari) on the same machine, but fails to render specifically within the Google Calendar UI in Firefox.

Flags: needinfo?(tec.freenet)

I'm experiencing the same issue, but across all web pages (not just Google Calendar). I'm using Firefox 146.0 on macOS Tahoe 26.1, and emoji fail to render for me on all web pages (Github, Wikipedia, Google, etc.)

The issue persists when I enable Troubleshoot Mode.

Please let me know what diagnostics I can provide.

For my system the issue only started appearing (as in, emoji disappearing) in macOS Tahoe 26.2. The system is in lockdown mode. Other apps like Element.app also have issues rendering emojis. While apps like Sublime text and Terminal render emojis perfectly fine.

Ah – I should clarify that I am also running with macOS in Lockdown Mode (but similarly, apps other than Firefox seem to behave fine re: emoji).

CONFIRMED: The issue is caused by macOS Lockdown Mode
Like the other users reported above, I can confirm that my system is in Lockdown Mode.

I just performed a verification test by temporarily disabling Lockdown Mode and restarting my Mac:

  • With Lockdown Mode OFF: Emojis render CORRECTLY in Google Calendar.
  • With Lockdown Mode ON: Emojis fail to render (blank spaces/tofu).

I have re-enabled Lockdown Mode now as I rely on it for security.
Since this setup worked fine in previous Firefox versions, this confirms a regression in Firefox 146 regarding compatibility with macOS Lockdown Mode constraints. Please fix this so we don't have to compromise on security.

I bisected this to https://phabricator.services.mozilla.com/D263792, tested by putting random emoji in the address bar using the emoji picker.
I made some wild guesses at relevant about:config entries, and setting either one of layers.gpu-process.enabled to false or security.sandbox.gpu.level to 0 and restarting Firefox fixes it.

Verified: The workaround works

I tested the workaround by setting security.sandbox.gpu.level to 0 and restarting. I can confirm that this fixes the rendering issue on my end: emojis are visible again in Google Calendar even with Lockdown Mode enabled.

Thanks for the incredibly fast diagnosis and bisection! I will use this workaround for now while waiting for the official patch.

No problem! I was just looking to see if anybody had reported it yet. I want emojis back too 😓

I think this is the same as https://issues.chromium.org/issues/403993360.
In Lockdown Mode, Apple renders images, including emoji, in an out of process sandbox, much the same as Firefox's sandboxing. Normally this is done transparently through the Image IO framework, but Firefox's sandbox blocks connecting to the image processing process.
Long-term, based on the Chromium thread it sounds like the fix is to petition Apple for an exception, since there's no sense in sandboxing it twice.
As a short term workaround, adding com.apple.ImageIOXPCService to SandboxPolicyGPU.h allows it to work.

I've verified the quick fix on my machine and I can get a pull request ready. However, I'm not entirely sure how to run the sandbox tests locally, let alone ensure it runs on a Lockdown Mode CI machine.

Thanks for bisecting! Brad, can you take a look?

Status: UNCONFIRMED → NEW
Component: Layout: Text and Fonts → Graphics
Ever confirmed: true
Flags: needinfo?(bwerth)
Keywords: regression
Regressed by: 1985082

This looks a lot like bug 1993258 so cc-ing haik too.

[Tracking Requested - why for this release]: Seems like an annoying regression

Set release status flags based on info from the regressing bug 1985082

Tracking but it's too late for Fx146.
Fx147 goes to release next week. We could uplift a fix if we have a low risk patch in time.

The bug is marked as tracked for firefox146 (release), tracked for firefox147 (beta) and tracked for firefox148 (nightly). We have limited time to fix this, the soft freeze is in 7 days. However, the bug still isn't assigned.

:bhood, could you please find an assignee for this tracked bug? Given that it is a regression and we know the cause, we could also simply backout the regressor. If you disagree with the tracking decision, please talk with the release managers.

For more information, please visit BugBot documentation.

Flags: needinfo?(bhood)

As an immediate fix here, I think we should take the suggestion from comment 9:

As a short term workaround, adding com.apple.ImageIOXPCService to SandboxPolicyGPU.h allows it to work.

(thanks for the investigation, @mattheww!), even though I don't think we're set up to verify it in automation at present. This seems clear & simple enough that we can safely land and uplift it.

Assignee: nobody → jfkthame
Status: NEW → ASSIGNED

It's too late for Fx146, Fx147 goes to release next week.
We could try to take this for 147.0 if we get an uplift request in time.

Pushed by mstange@mozilla.com: https://github.com/mozilla-firefox/firefox/commit/93bffe98d4ef https://hg.mozilla.org/integration/autoland/rev/c9a223beee60 Add com.apple.ImageIOXPCService to sandbox policy so that emoji can render in lockdown mode. r=mac-reviewers,mstange

I'm not comfortable shipping this fix, specifically adding com.apple.ImageIOXPCService without more investigation. It may be the right fix, but I'd like to spend more time on it.

com.apple.ImageIOXPCService has been involved in sandbox escapes in the past and rushing this in over the holiday break for a minority of users running lockdown mode is unwarranted.

Pushed by abutkovits@mozilla.com: https://github.com/mozilla-firefox/firefox/commit/e32e779c97b9 https://hg.mozilla.org/integration/autoland/rev/318e5c2eb991 Revert "Bug 2005440 - Add com.apple.ImageIOXPCService to sandbox policy so that emoji can render in lockdown mode. r=mac-reviewers,mstange" due to review feedback. DONTBUILD
Flags: needinfo?(mstange.moz)
Flags: needinfo?(mstange.moz)

Given the last comment in the Phab revision, should we re-land this?

Flags: needinfo?(haftandilian)

Set release status flags based on info from the regressing bug 1985082

Flags: needinfo?(haftandilian)
Summary: [Regression] Emojis fail to render on macOS (aarch64) - Firefox 146.0 → [Regression] Emojis fail to render on macOS (aarch64) in Lockdown mode - Firefox 146.0
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: