Progress on porting Firefox

YouTube testable release build here.

  • https://oshi.at/QZfn
    • firefox-128.1.0.en-US.haiku-x86_64.tar.bz2
    • expires: Wed Nov 27 13:59:03 2024
  • Checksums
    ~/src/gecko-dev> sha256sum obj-x86_64-unknown-haiku/dist/firefox-128.1.0.en-US.haiku-x86_64.tar.bz2 
    5e437b330bda2aa36de3b76238a8f2e1408d595e2ba11aef077c65162bd27250  obj-x86_64-unknown-haiku/dist/firefox-128.1.0.en-US.haiku-x86_64.tar.bz2
    ~/src/gecko-dev> sha1sum obj-x86_64-unknown-haiku/dist/firefox-128.1.0.en-US.haiku-x86_64.tar.bz2 
    4b79a7f439632ae3cd32984e3163c47e62ed2cd2  obj-x86_64-unknown-haiku/dist/firefox-128.1.0.en-US.haiku-x86_64.tar.bz2
    
7 Likes

I did a build with jit enabled, and it was noticeably faster (js speed increased 25x in tests). I can provide the package in hpkg format if you need it.

12 Likes

I tried building with JIT with following patch, but it took very long time to build, so I stopped building.

If you have working patch, send PR to my repo is welcome! And you can provide .hpkg file here too.

diff --git a/js/src/wasm/WasmSignalHandlers.cpp b/js/src/wasm/WasmSignalHandlers.cpp
index f838b7bec0e8..4f6b5654db09 100644
--- a/js/src/wasm/WasmSignalHandlers.cpp
+++ b/js/src/wasm/WasmSignalHandlers.cpp
@@ -249,6 +249,14 @@ using mozilla::DebugOnly;
 #    define RFP_sig(p) ((p)->thread.__fp)
 #    define R31_sig(p) ((p)->thread.__sp)
 #    define RLR_sig(p) ((p)->thread.__lr)
+#  elif defined(XP_HAIKU)
+#    define RIP_sig(p) ((p)->uc_mcontext.rip)
+#    define RSP_sig(p) ((p)->uc_mcontext.rsp)
+#    define RBP_sig(p) ((p)->uc_mcontext.rbp)
+#    define R11_sig(p) ((p)->uc_mcontext.r11)
+#    define R13_sig(p) ((p)->uc_mcontext.r13)
+#    define R14_sig(p) ((p)->uc_mcontext.r14)
+#    define R15_sig(p) ((p)->uc_mcontext.r15)
 #  else
 #    error \
         "Don't know how to read/write to the thread state via the mcontext_t."

I think we have to rename firefox binary to other name before making it publicly available (especially for HaikuDepot)

2 Likes

HaikuFox for the new name ?

Or maybe to put a poll on the forums so everyone can vote :slight_smile:

4 Likes

FoxFire? There was BeZilla…

1 Like

Yes, BeZilla is how the port used to be named back in Firefox 2 days. The same name can be reused, even if it comes from pre-firefox naming (“Mozilla Browser” used to be a thing a long time ago)

11 Likes

We can for sure change it, but it doesn’t mean we strictly have to. There are bunch of platforms that maintain their own port of Firefox browser while keep using the Firefox name (see Tier 3):
Supported Build Hosts and Targets — Firefox Source Docs documentation. Most probably we would need to get a confirmation from Mozilla, but imho that shouldn’t be a big deal. From what I remember from their bug tracker they’re usually happy to support open-source communities efforts of porting Firefox to other platforms, and use the Firefox name as long as there’re no significant changes to the packaged features or the branding.

Personally I think that from the marketing perspective it’d be cool to keep the Firefox name. Thinking of news titles: “Haiku can now run Firefox browser”, “Firefox ported to Haiku” etc., and of the users who install Haiku, then go to HaikuDepot and look for Firefox. So we should at least give it a try and ask Mozilla about it.

p.s.: I’m not a lawyer and neither ChatGPT is, but nevertheless this gives some hints:

5 Likes

Please do not use a random generator as legal advice (or any advice, really…)

12 Likes

There was a post “Name that FireFox port” with a bunch of names and ideas, I liked kitsune since it was kinda original.

1 Like

If they do it again, my vote will go for Tanuki.

1 Like

I upvote this, but probably ‘kitzune’ is a already taken, while ‘hikitzune’ (lit. FireFox) seems available

Just ask Mozilla if we can use the name Firefox. If not, BeZilla sounds good to me.

3 Likes

That must be “kitsune” I suppose, which means “fox” in Japanese.

1 Like

They have written guidelines for Mozilla Firefox named product.

We can redistribute unmodified version as Firefox as defined here. otherwrise we cannot distribute our build as Firefox as far as I understand.

We can request them we call our build Firefox, but

If you wish to distribute a modified version of Firefox or other Mozilla software with Mozilla trademarks please contact us with your request at trademark-permissions@mozilla.com.

I don’t think they want admit our premature pre-alpha quality verison as their supported product. So I think it is needed large part of patchsets are accepted by them first.

As engineers we both know what random generator is and why LLM is not a random generator (yes, I also don’t like all the LLM hype, but let’s stay professional).

2 Likes

BSD ports named Firefox do contain patches which are not part of the upstream repository.

Maybe yes, maybe no. It won’t hurt to ask.

But this is Haiku, not BeOS. This port isn’t a version of BeZilla, it’s a port of Firefox to Haiku so it wouldn’t be a fitting name.

1 Like

If it can’t be named Firefox, I suggest “PositiveFox” :slightly_smiling_face:

1 Like

Ahoy @DigitalBox ,

Earlier there were a naming thread here on the forum in 2023 when KENZ first started to work on this port …

HERE you are

below my suggestions from there :stuck_out_tongue_winking_eye:

2 Likes

I have published the build to my LOTE repository, you can add to the repository or just download the packages [1] [2] and install manually. Binary and package renamed to Nightly and used the icon for nightly build.

13 Likes