Experimental Gecko ESR153 (Firefox 153) browser for Sailfish OS 5.1 and 5.2.
Sailfish OS ships a browser based on Gecko ESR91 from 2021; this is a community port of the current ESR153 engine, the successor of my ESR140 port (sailfish-browser-next).
Every package in this stack carries a "-next153" suffix and uses its own directories and profile. The system browser is not touched, and the ESR140 "-next" stack can stay installed as well — all of them appear in the app grid and can be used side by side. Uninstalling the -next153 packages leaves everything else exactly as it was.
Enable this repository and install ONLY this package. The dependencies (xulrunner-qt5-next153, embedlite-components-qt5-next153, qtmozembed-qt5-next153 and the three sailfish-components-webview-qt5-next153 packages) are pulled in automatically. Download is roughly 70 MB, installed size around 200 MB.
The app grid entry uses a purple icon, so it is easy to tell apart from the stock browser's blue one.
WebExtensions work. Open the menu, tap the puzzle-piece icon, and search addons.mozilla.org from inside the browser — installing, enabling, disabling and removing all work from there.
Tested and working:
Extensions are on by default. Earlier builds needed a pref set by hand, so a fresh profile silently had none.
The Firefox devtools protocol is available, off by default. To turn it on, add these to ~/.local/share/org.sailfishos/browser-next153/.mozilla/user.js and restart the browser:
user_pref("devtools.debugger.remote-enabled", true);
user_pref("devtools.debugger.prompt-connection", false);
user_pref("devtools.chrome.enabled", true);
user_pref("embedlite.devtools.enabled", true);
user_pref("embedlite.devtools.port", 6000);
The server then listens on port 6000 on localhost and speaks the standard remote debugging protocol, so anything that talks RDP can attach — Firefox's about:debugging, or a terminal client for evaluating chrome-privileged JavaScript, which is how most of the extension work was debugged.
To reach it from another machine, forward the port over SSH rather than opening it up:
ssh -L 6000:localhost:6000 defaultuser@<device>
There is a devtools.debugger.force-local pref that would make the server listen on all interfaces. Don't set it: the protocol grants full chrome privileges with no authentication, so anyone on the same network could read your cookies and run code in the browser.
This is alpha software. Tested on Sony Xperia 10 V (pdx235) with SFOS 5.2.0.15 and on the Jolla Phone 2026 with SFOS 5.1, both aarch64. Reports from other devices are very welcome — please include the device model and SFOS version.
Engine and EmbedLite layer: https://github.com/smatkovi/gecko-dev (branch fork-esr153) JS components: https://github.com/smatkovi/embedlite-components (branch next153) Browser UI: https://github.com/smatkovi/sailfish-browser (branch next153)
Release notes and direct RPM downloads: https://github.com/smatkovi/gecko-dev/releases/tag/esr153-alpha1
This port was built in my free time. If you find it useful:
https://www.paypal.me/smatkovi https://liberapay.com/smatkovi
| Attachment | Size | Date |
|---|---|---|
| 4.27 MB | 23/08/2026 - 01:18 | |
| 4.27 MB | 23/08/2026 - 15:47 | |
| 4.27 MB | 23/08/2026 - 18:27 | |
| 4.28 MB | 24/08/2026 - 19:12 | |
| 4.28 MB | 24/08/2026 - 22:19 | |
| 4.31 MB | 27/08/2026 - 20:39 |
finally got extensions working, without popups though, but ublock origin, i still don't care about cookies and social fixer in desktop mode work, tampermonkey i didn't test, but the settings page opens.
Comments
ahjolinna
Thu, 2026/08/27 - 21:03
Permalink
I tested the new extension support, and at least ublock seems to work. Okay the browser did crash when I try to configure the first time, the 2nd time it worked just fine.
I was thinking maybe it would be better if you could access extension configure page with "longpress and then choose configure" instead one click/press (for better accessibility)
ahjolinna
Thu, 2026/08/27 - 20:48
Permalink
like I mentioned on 140 version about areena.yle.fi there is about same amount of errors on 153
here is the logs for 153(-3.0.0-6) just in case: https://paste.opensuse.org/pastes/a7d050f8c95a
(it does load another video site first, then goes to yle)
lorenzo
Thu, 2026/08/27 - 11:40
Permalink
Hi!
Trying it in sfos 5.2 on jp26. Screen is blanking and then all goes dark. Do i have to install some other to let it work?
aviarus
Thu, 2026/08/27 - 19:29
Permalink
Hi, nothing else to install — Hardware rendering itself is fine, so no need to fall back to software. Paste this into a terminal without the three quotes, then restart the browser: ```bash python3 - <<'PY' import os p = os.path.expanduser("~/.local/share/org.sailfishos/browser-next153/.mozilla/user.js") os.makedirs(os.path.dirname(p), exist_ok=True) s = open(p).read() if os.path.exists(p) else "" prefs = { "gfx.webrender.compositor": "false", "gfx.webrender.compositor.force-enabled": "false", } added = [] for k, v in prefs.items(): if k not in s: s = s.rstrip("\n") + '\nuser_pref("%s", %s);\n' % (k, v) added.append(k) open(p, "w").write(s) print("added:", ", ".join(added) if added else "nothing (already present)") PY ``` If the screen still goes dark after that, start it from the terminal: ```bash sailfish-browser-next153 2>&1 | tail -40 ``` and send me the output — that'll tell me whether it fails at EGL or somewhere above it.
lorenzo
Thu, 2026/08/27 - 22:49
Permalink
Just updated and now it works good!
Sorry for reading this late and haven't helped debugging.
abranson
Tue, 2026/08/25 - 13:31
Permalink
This all looks very promising, though forking off my WIP esr140 branch has meant things have diverged quite a lot already, and your esr153 work is very different to mine. You've done some useful issue finding there already, so thanks for that! Definitely saved me some time.
Hopefully we can get some of your contributions in to the main browser once the Jolla gecko 153 gets released?
aviarus
Tue, 2026/08/25 - 13:45
Permalink
Yes of course. I always wanted to use fido tokens, so i added that feature. I hope i didn't make some things worse. I'm glad if it saves you time. Thanks for your good work. The new jolla phone is amazing.
abranson
Tue, 2026/08/25 - 13:56
Permalink
I saw that! Very cool. I think for the core browser I'd prefer to wait until we have some hardware crypto to back it properly. But a community browser is exactly the right place to experiment with that sort of thing.
treagod
Tue, 2026/08/25 - 12:57
Permalink
Hi, thanks for this great port!
Tested on Jolla Phone 2026 / Sailfish OS 5.2. Sailfish keyboard word suggestions do not work in the browser (tested on multiple websites). Typing works normally.
Also: ChatGPT web sends the message on Enter instead of inserting a new line.
Thanks for bringing a modern Firefox engine to Sailfish!
sdworks
Sun, 2026/08/23 - 20:54
Permalink
Hitting the back-button, the browser crashes every time on my JP2026 ... . Restarting makes me land on the previous page.
aviarus
Sun, 2026/08/23 - 22:48
Permalink
Update xulrunner, the last version fixes this
duskull
Sun, 2026/08/23 - 20:27
Permalink
Thanks a lot for making this and good idea to rename it as it can be confusing if it has the same name as the default browser
ahjolinna
Sun, 2026/08/23 - 20:42
Permalink
also recoloured icon would also be nice to add, this is what browsers typically do to sperated their stable, beta, nightly version
ahjolinna
Sun, 2026/08/23 - 16:34
Permalink
tested both version on my xperia x compact, xperia 10 and JP26.
153 is noticeable smoother compare to 140. There are some regression, my guess its mostly related to the port.
one example if you watch any video from https://areena.yle.fi/ and then try to leave and it crashes
here is a log from my JP 26 when I try to play a yle video from and then leave and then it crashed: https://paste.opensuse.org/pastes/471b4b46e85f
edit/update: okay seems the new update fix the crash issue, but its not as smooth as 140 when scrolling