sailfishos/sailfish-browser

Possibility of using UXP to ease development?

Closed this issue · 2 comments

@rainemak

Hi there,

I was thinking about the possibility of using the UXP platform (developed by Moonchild Productions) going forward. The Sailfish OS was recently updated to FF 52 ESR code level, which is severely outdated even now (codebase from 2017). However, upon achieving parity with FF 52 ESR, one could think about using UXP which is a fork of the Firefox 52 ESR codebase. My reason

  1. Switching to UXP shouldn't be very problematic since FF 52 ESR parity was already achieved, UXP is a continuation of the codebase.
  2. This could ease the development burden and big rebases on new FF ESR codebases would no longer be necessary.
  3. UXP gets improvements on a regular basis and receives security updates in a timely manner, a fact from which the Sailfish browser could profit.

Perhaps UXP could also benefit from contributions going the other way around going forward.

You can find the UXP repo here:

https://github.com/MoonchildProductions/UXP

One should probably contact Moonchild before any such decision can be made, and one would also have to look at the appropriate licensing requirements.

Anyway, the Sailfish OS browser is far behind the times even now and I suspect that the constant need to rebase on newer Firefox ESR codebases is the reason for that; since we are so far behind, using a valid continuation of the FF 52 ESR codebase might perhaps be better and more user-friendly. Opinions and criticism always welcome. Cheers.

@rainemak

Is this a realistic suggestion? I think this would ease development considerably (no longer having to go through major Mozilla code rewrites between ESR releases) while also improving web compatibility.

Thanks for the suggestion. We did already consider this a while ago. As you said, UXP would be less work in the long run to maintain, but it has its own compatibility problems which are likely to increase as Gecko advances. We decided to continue with Gecko and ESR60 is now almost ready for release. This was a bigger jump than 52 was, and should set us up for an easier upgrade path to a current ESR eventually. It's always going to be the most compatible path, and we've already seen some impressive performance gains with 60. It's also brought in Rust support, which has a lot of potential for the future.