Hello everyone.
I am a big fan of Firefox and a long-time watcher of Haiku (and BeOS).
I love Haiku’s cute UX (inherited and polished from BeOS), so WebPositive looks sweet, but I dreamed also firefox will be available on Haiku in the future.
Recently, Haiku gets the Wayland compatibility layer, it runs gtk3, gtkwebkit and GNOME Web(epiphany) with relatively small additional porting effort, this convinced me it is viable to port Firefox on Haiku now.
I spent some weekends and managed to build firefox binary (with a few stubbing platform specific code to be written later).
It spawns main child process, creates initial (Firefox) profile directory, and opens Wayland display, but then it crashes.
Currently, it got stucked at getting EGL context from the Wayland compatibility layer.
I found it doesn’t support EGL yet.
If my knowledge is correct, to get an (E)GL context on Haiku, a BGLView is needed, a BGLView should be added to a BWindow before retriving the context.
Wayland compatible layer has underlying BWindow in it, so to get the EGL context from it, wayland-server implementation needs change.
X512 is already working on it, so I’ll wait it will be available.
WIP branch
-
https://github.com/kenz-gelsoft/gecko-dev
- porting from Firefox ESR 102 branch.
To build:
-
ln -s haiku_mozconfig mozconfig
and -
./mach build
should introduce almost dependencies with pkgman, but some packages may need to be installed manually. - you have to newer version of cbindgen than the version available in haikuports.
Set environment variables to run:
-
export MOZ_ANDROID_LIBDIR=/boot/home/src/gecko-dev/obj-ff-dbg/dist/bin
- need to specify the directory build product lives
- because I’ve reused Android logic which uses environment variable to locate the directory firefox binary lives in.
export WAYLAND_DISPLAY=:0