New Firefox fork

For discussions about side projects, potential future projects or helper applications for Pale Moon.
User avatar
andreasr
Moongazer
Moongazer
Posts: 13
Joined: 2024-10-07, 11:01

New Firefox fork

Unread post by andreasr » 2024-10-07, 11:10

Hello,

I would like to create and maintain a fork of an old version of Firefox, and hope to get some ideas and feedback for this project here.

Which version? I have been considering forking Firefox 1, Firefox 1.5, Firefox 3, Firefox 10, Firefox 52, Firefox 131.
At the moment I am leaning towards Firefox 10, because it supports HTML5 well, was released January 31, 2012, and the source code is not so bloated and large.

I would like to maintain the project on GitHub, as a true open source project.

So far I have had some problems compiling Firefox 10 on Github actions, has anyone been able to compile Firefox 10 for Ubuntu and Windows from source?

I would like to update and maintain the browser, update SSL certificates so that modern websites can bee opened, and keep the browser small, fast and without any bloat.

I very much appreciate the effort that has gone into creating Pale Moon browser, thank you.

https://github.com/wunderfox/wunderfox
Last edited by andreasr on 2024-10-07, 18:32, edited 1 time in total.

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 37679
Joined: 2011-08-28, 17:27
Location: Motala, SE

Re: New Firefox fork

Unread post by Moonchild » 2024-10-07, 11:38

Firefox 10 will rely on a considerably old toolchain to build. I don't think it would be possible to build it from source as-is with a 2024 toolchain or current compilers without edits.
I don't know how extensive the needed changes would be, though, but it'll likely take some effort to get it to build.

You will also have to go through all of the security bugs since FF10 to be able to publish a browser that is safe to use on the web. You'll have to go through the MSFA reports to know which bugs to look at.
"A dead end street is a place to turn around and go into a new direction" - Anonymous
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

User avatar
Basilisk-Dev
Lunatic
Lunatic
Posts: 492
Joined: 2022-03-23, 16:41
Location: Chamber of Secrets

Re: New Firefox fork

Unread post by Basilisk-Dev » 2024-10-07, 13:37

This will be difficult as you will likely need to use a 2012 toolchain until you are able to update the browser to work with a more modern toolchain, both on the Linux/GCC side and the Windows/MSVC side.

I don't mean to discourage you with my question, but what is the benefit of your plan to fork it? Pale Moon's GUI is fairly similar to Firefox 10 already, but Pale Moon is over a decade newer in terms of security updates and HTML/JS support for the modern web, as well as having support for modern build environments.
Basilisk Project Owner

viewtopic.php?f=61&p=230756

User avatar
andreasr
Moongazer
Moongazer
Posts: 13
Joined: 2024-10-07, 11:01

Re: New Firefox fork

Unread post by andreasr » 2024-10-07, 17:45

Here I've created a project on Github, to maintain a Firefox 10 fork:
https://github.com/wunderfox/wunderfox

This compilation issue is the next I have to fix in order to progress with this project:
https://github.com/wunderfox/wunderfox/issues/1

Any help from devs here would be welcome, to help being able to compile Firefox 10 on a modern Ubuntu. Forks and pull requests welcome.

This will be a Firefox fork, in the spirit of open source, and a friend project of Pale Moon! :)

User avatar
andreasr
Moongazer
Moongazer
Posts: 13
Joined: 2024-10-07, 11:01

Re: New Firefox fork

Unread post by andreasr » 2024-10-07, 20:53

I am making progress, making the code compile on Ubuntu Linux. Thanks for the help so far!

Now I am struggling to fix this error:


024-10-07T20:47:28.4773260Z /home/runner/work/wunderfox/wunderfox/ipc/ipdl/PPluginModuleParent.cpp: In member function ‘virtual mozilla::ipc::Shmem::SharedMemory* mozilla::plugins::PPluginModuleParent::CreateSharedMemory(size_t, mozilla::ipc::SharedMemory::SharedMemoryType, bool, mozilla::ipc::Shmem::id_t*)’:
2024-10-07T20:47:28.4777686Z /home/runner/work/wunderfox/wunderfox/ipc/ipdl/PPluginModuleParent.cpp:1341:16: error: cannot convert ‘bool’ to ‘mozilla::ipc::Shmem::SharedMemory*’ {aka ‘mozilla::ipc::SharedMemory*’} in return
2024-10-07T20:47:28.4779658Z 1341 | return false;
2024-10-07T20:47:28.4780158Z | ^~~~~

https://github.com/wunderfox/wunderfox/issues/3

User avatar
andyprough
Board Warrior
Board Warrior
Posts: 1115
Joined: 2020-05-31, 04:33

Re: New Firefox fork

Unread post by andyprough » 2024-10-07, 21:17

andreasr wrote:
2024-10-07, 20:53
I am making progress, making the code compile on Ubuntu Linux. Thanks for the help so far!
Which version of Ubuntu are you using? Did you know that with a free Ubuntu Pro account you can use Ubuntu 16.04 with security updates through 2026? https://ubuntu.com/about/release-cycle

That might help a small bit with compiling to use an older version of Ubuntu.

User avatar
jobbautista9
Keeps coming back
Keeps coming back
Posts: 953
Joined: 2020-11-03, 06:47
Location: Philippines

Re: New Firefox fork

Unread post by jobbautista9 » 2024-10-08, 04:00

Basilisk-Dev wrote:
2024-10-07, 13:37
but what is the benefit of your plan to fork it?
I'd imagine having a middle-ground option between NetSurf/Dillo and Pale Moon would be nice. Complete HTML5, CSS3 (that's been published by the W3C), and ES6 support (while ignoring the rest of the later standards by WHATWG) with TLS 1.3 and the extensibility of XUL... I can see that being a target for indie web developers who want a reasonable amount of backwards compatibility (i.e. not going as far as supporting IE 6). :thumbup:

Now if they're going to target the latest "Living Standard", then yeah I don't see the point either :think:
Image

"Destroying things, smartly!" - IJN Samidare, probably

Avatar artwork by ebifurya: https://www.pixiv.net/artworks/85379109

XUL add-ons developer. You can find a list of add-ons I manage at http://rw.rs/~job/software.html.

User avatar
suzyne
Astronaut
Astronaut
Posts: 719
Joined: 2023-06-28, 22:43
Location: Australia

Re: New Firefox fork

Unread post by suzyne » 2024-10-08, 04:48

I totally own up to the fact that another fork of an old browser is of little interest to me, but I have trouble understanding the motivation or ultimate purpose.

Is it the satisfaction of conquering the challenge of converting the source into a program that can run on a modern computer? Is achieving that personal goal the reason for doing it, like it's an end in itself? Or is there a real expectation that there are enough people out there that need or want to use an old browser, that it might become popular and be appreciated by many.

I don't want to sound disrespectful, but I just don't get it.
Laptop 1: Windows 11 64-bit, i7 @ 2.80GHz, 16GB, NVIDIA GeForce MX450.
Laptop 2: Windows 10 32-bit, Atom Z3735F @ 1.33GHz, 2GB, Intel HD Graphics.
Laptop 3: Linux Mint 20.3 64-bit, i5 @ 2.5GHz, 8GB, Intel HD Graphics 620.

User avatar
moonbat
Knows the dark side
Knows the dark side
Posts: 5590
Joined: 2015-12-09, 15:45

Re: New Firefox fork

Unread post by moonbat » 2024-10-08, 05:18

Way I see it, Pale Moon already satisfies most of these requirements so he must really like an even older UI (version 10 as opposed to 24 which Pale Moon is based on). Or as an academic exercise.
"One hosts to look them up, one DNS to find them and in the darkness BIND them."

Image
KDE Neon on a Slimbook Excalibur (Ryzen 7 8845HS, 64 GB RAM)
AutoPageColor|PermissionsPlus|PMPlayer|Pure URL|RecordRewind|TextFX
Jabber: moonbat@hot-chili.net

User avatar
andreasr
Moongazer
Moongazer
Posts: 13
Joined: 2024-10-07, 11:01

Re: New Firefox fork

Unread post by andreasr » 2024-10-08, 06:16

Source code size comparison (uncompressed source code size):

Firefox 1.0.1 - 201 MB (a classic, wow, really small, tempting to fork!)

Firefox 10 - 381 MB (I chose to fork this!)

Firefox 24 - 565 MB

Firefox 131 - 2884 MB (C++ and Rust)

Pale Moon - would be interesting to find size of the source code, does anyone know?

Chromium - 3847 MB (Chromium has gone really overboard with 3.8 GB, which takes ages to compile, and will be impossible to fully understand and change in any meaningful way.)

Dillo - 4 MB (respectable! :)

Smaller source code means less code to maintain, change and understand, and smaller source code will be faster to compile.
I plan to modernize and optimize the source code, and hopefully remove a lot of code not needed.


Anyway, it would be really cool with a community effort to help compile Firefox 10 on modern systems. For fun! I am currently focusing on Ubuntu Linux 22.04.
There is quite a lot of source code updates needed, so feel free to fork on GitHub and submit pull requests here:

https://github.com/wunderfox/wunderfox

"Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away."

User avatar
moonbat
Knows the dark side
Knows the dark side
Posts: 5590
Joined: 2015-12-09, 15:45

Re: New Firefox fork

Unread post by moonbat » 2024-10-08, 06:32

Google decided that the web browser is no longer a remote document viewer as originally designed but a virtual machine for running bloated javascript web apps, and started stuffing everything and the kitchen sink into the web standards. Mozilla faithfully aped them with Firefox and so here we are now.
"One hosts to look them up, one DNS to find them and in the darkness BIND them."

Image
KDE Neon on a Slimbook Excalibur (Ryzen 7 8845HS, 64 GB RAM)
AutoPageColor|PermissionsPlus|PMPlayer|Pure URL|RecordRewind|TextFX
Jabber: moonbat@hot-chili.net

User avatar
andreasr
Moongazer
Moongazer
Posts: 13
Joined: 2024-10-07, 11:01

Re: New Firefox fork

Unread post by andreasr » 2024-10-08, 09:23

How is PPluginModuleParent.cpp generated?
I can't find PPluginModuleParent.cpp:1341

> Google decided that the web browser is no longer a remote document viewer as originally designed but a virtual machine...

A fork of Firefox 10, can be part of the movement of keeping the internet open for people to exchange information, independent of Google and the Alphabet capitalist. Such a fork could enable free open communication, prevent censorship and surveillance-capitalism. In the same philosophical line as the Opera browser, and now Vivaldi. Multiple competing technologies, and possibly adapting new web protocols and standards. I live in Norway. In my opinion many people around the world are being limited, oppressed, censored and spied upon by corporations in USA, and they are using technology to implement their American world view. Therefore, let's make yet another web browser fork.

As a software developer it's interesting to explore the technology and implementation of Firefox. Possibly there are different ways of making a web browser which have not been explored yet. A small, smart and quite widely understood code base can be used for starting other projects, such as the Tor network.

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 37679
Joined: 2011-08-28, 17:27
Location: Motala, SE

Re: New Firefox fork

Unread post by Moonchild » 2024-10-08, 09:42

Honestly, what I would do in your place is first give each of the options you've been looking at a try and see how compatible they still are with the web. I honestly don't think a browser with Firefox 10's feature set is very useful in 2024 because of its severely lacking feature set.

You'd need at least some support for more advanced CSS, and you'd want complete ES6 support at the very least if you want to have a chance, I think. Maybe you can get away with ES5 ... I don't remember off-hand how complete support is in Firefox 10 -- it's been a long time since I looked at it. If its support is anything less than 100% of ES5, it's pretty much useless for anything but specific archived versions of old sites.
"A dead end street is a place to turn around and go into a new direction" - Anonymous
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

User avatar
suzyne
Astronaut
Astronaut
Posts: 719
Joined: 2023-06-28, 22:43
Location: Australia

Re: New Firefox fork

Unread post by suzyne » 2024-10-08, 09:44

Off-topic:
moonbat wrote:
2024-10-08, 06:32
Google decided that the web browser is no longer a remote document viewer as originally designed.
Was it really Google who decided that?

When I browse the catalogue of the Classic Add-ons Archive, it appears to me that Mozilla were the originators of creating a browser with an ecosystem that turned Firefox into an "operating system".

Add-ons that include complete apps such as SQL Database viewer/editors and even a full email client with POP/IMAP are way, way beyond a "remote document viewer".

To blame Google and Chrome (which I don't think ever had extensions as powerful as these?) for creating a virtual machine seems unfair given what Firefox could do, before Mozilla went down the path of web extensions?
Laptop 1: Windows 11 64-bit, i7 @ 2.80GHz, 16GB, NVIDIA GeForce MX450.
Laptop 2: Windows 10 32-bit, Atom Z3735F @ 1.33GHz, 2GB, Intel HD Graphics.
Laptop 3: Linux Mint 20.3 64-bit, i5 @ 2.5GHz, 8GB, Intel HD Graphics 620.

User avatar
andreasr
Moongazer
Moongazer
Posts: 13
Joined: 2024-10-07, 11:01

Re: New Firefox fork

Unread post by andreasr » 2024-10-08, 10:03

Firefox 10 can read Hacker News. https://news.ycombinator.com/ - a forked Firefox browser could cater to the simple html websites still out there. Like the local newspaper website built using html and simple JavaScript and Css.

User avatar
andyprough
Board Warrior
Board Warrior
Posts: 1115
Joined: 2020-05-31, 04:33

Re: New Firefox fork

Unread post by andyprough » 2024-10-08, 11:26

andreasr wrote:
2024-10-08, 06:16
Pale Moon - would be interesting to find size of the source code, does anyone know?
When I do a git clone of Pale Moon 33.4.0 I receive 1.9 GB of files. Instructions to clone and build Pale Moon on Ubuntu are here: https://developer.palemoon.org/build/linux/
andreasr wrote:
2024-10-08, 06:16
Anyway, it would be really cool with a community effort to help compile Firefox 10 on modern systems. For fun! I am currently focusing on Ubuntu Linux 22.04.
Did you try building Wonderfox on Ubuntu 16.04 like I said above? Ubuntu supports the old 16.04 version with security updates through 2026 if you subscribe to a free Ubuntu Pro account. You could make this browser available to users of older Ubuntu-based distros that way, like our friend on this forum who uses an old version of Mint with older glibc and therefore can't run the official versions of Pale Moon.

User avatar
moonbat
Knows the dark side
Knows the dark side
Posts: 5590
Joined: 2015-12-09, 15:45

Re: New Firefox fork

Unread post by moonbat » 2024-10-08, 12:03

suzyne wrote:
2024-10-08, 09:44
Was it really Google who decided that?
Indeed it was. They came up with multi-process browsing with their stripped down zero extension support initial release of Chrome, which obviously ran faster than Firefox the way a Formula 1 car would go faster than a regular sedan, while lacking basic amenities. At this point in 2008, Firefox was running slow and a memory hog, in part due to badly written addons - which again, surprise, were in no part thanks to the moth eaten, next to non existent state of documentation, let alone any guidance or best practices for writing secure and proper extensions.
suzyne wrote:
2024-10-08, 09:44
Add-ons that include complete apps such as SQL Database viewer/editors and even a full email client with POP/IMAP are way, way beyond a "remote document viewer".
Which is why by definition, they are add-ons and not part of the browser core. Only those who want them will install them. Among other complex extensions, there's Chatzilla (IRC client), FireFTP/FireSSH (for those protocols) & NewsFox (full blown 3 panel RSS reader that looks like Outlook). Meanwhile the geniuses at Mozilla decided to dump XUL/XPCOM, which made such extensions that actually extend the browser impossible to make, and started bloating the browser core with unwanted crap like Pocket.
suzyne wrote:
2024-10-08, 09:44
To blame Google and Chrome (which I don't think ever had extensions as powerful as these?) for creating a virtual machine seems unfair given what Firefox could do, before Mozilla went down the path of web extensions?
I blame them for hijacking web standards, and I blame Mozilla for kowtowing to them completely and deciding to turn Firefox into a cheap imitation of Chrome, dumping its original base of power users in the process. Moonchild has shown right here that is is undeniably possible to build a browser for the 'modern' web without discarding the older application platform (what we know now as UXP) or extension technology.

That's also a factor in why they hate Pale Moon - it is a living testament to what Firefox could have been.

Also consider this - if anyone wants to learn to write a browser extension for Pale Moon, they can get started with RealityRipple's documentation archive, create their extension and test it on their daily browser directly. With Firefox's mandatory signing that has done squat for security and in fact ended up disabling everyone's extensions in 2019 due to an expired signing certificate - you cannot just roll your own web extension for personal use on the daily build and have to use the LTS or other developer version. Or unpack the extension and load it separately from disk the exact way Chrome does.
"One hosts to look them up, one DNS to find them and in the darkness BIND them."

Image
KDE Neon on a Slimbook Excalibur (Ryzen 7 8845HS, 64 GB RAM)
AutoPageColor|PermissionsPlus|PMPlayer|Pure URL|RecordRewind|TextFX
Jabber: moonbat@hot-chili.net

User avatar
andreasr
Moongazer
Moongazer
Posts: 13
Joined: 2024-10-07, 11:01

Re: New Firefox fork

Unread post by andreasr » 2024-10-08, 13:10

So PPluginModuleParent.cpp is generated? How is it generated? What is the source? How can I fix compilation errors in PPluginModuleParent.cpp? It seems very few people fully understand the details of the Firefox source so spreading knowledge about this would be of benefit for Firefox fork projects.

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 37679
Joined: 2011-08-28, 17:27
Location: Motala, SE

Re: New Firefox fork

Unread post by Moonchild » 2024-10-08, 13:19

P*Parent/P*Child are usually generated from *.ipdl files. In this case that would be PPluginModule.ipdl (off the top of my head)
"A dead end street is a place to turn around and go into a new direction" - Anonymous
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

User avatar
andreasr
Moongazer
Moongazer
Posts: 13
Joined: 2024-10-07, 11:01

Re: New Firefox fork

Unread post by andreasr » 2024-10-08, 18:01

Today I still had some progress in "Forking and Reviving Firefox 10".

Apparently there is a heavily patched version of Cairo bundled inside Firefox 10. Cairo version 1.6.4 released in 2008-04-11.
It is found here: https://github.com/wunderfox/wunderfox/ ... /gfx/cairo

Now I get this compilation error inside Cairo:

Code: Select all

2024-10-08T17:57:46.8926257Z gcc -o cairo-xlib-screen.o -c -I../../../../dist/system_wrappers -include ../../../../config/gcc_hidden.h -DMOZILLA_INTERNAL_API -D_IMPL_NS_COM -DEXPORT_XPT_API -DEXPORT_XPTC_API -D_IMPL_NS_GFX -D_IMPL_NS_WIDGET -DIMPL_XREAPI -DIMPL_NS_NET -DIMPL_THEBES  -DSTATIC_EXPORTABLE_JS_API -DOSTYPE=\"Linux6.8\" -DOSARCH=Linux -DPACKAGE_VERSION="\"moz\"" -DPACKAGE_BUGREPORT="\"http://bugzilla.mozilla.org/\"" -DMOZ_TREE_CAIRO -DMOZ_TREE_PIXMAN -I. -I. -I. -I../../../../dist/include -I../../../../dist/include/nsprpub  -I/home/runner/work/wunderfox/wunderfox/dist/include/nspr -I/home/runner/work/wunderfox/wunderfox/dist/include/nss        -fPIC  -Wall -W -Wno-unused -Wpointer-arith -Wdeclaration-after-statement -Wcast-align -W -pedantic -Wno-long-long -fno-strict-aliasing -pthread -ffunction-sections -fdata-sections -pipe -DNDEBUG -DTRIMMED -g -Os -freorder-blocks  -fomit-frame-pointer -Wno-missing-field-initializers   -include ../../../../mozilla-config.h -DMOZILLA_CLIENT -MD -MF .deps/cairo-xlib-screen.pp /home/runner/work/wunderfox/wunderfox/gfx/cairo/cairo/src/cairo-xlib-screen.c
2024-10-08T17:57:46.9808832Z In file included from /usr/include/fontconfig/fcfreetype.h:27,
2024-10-08T17:57:46.9809835Z                  from ../../../../dist/system_wrappers/fontconfig/fcfreetype.h:3,
2024-10-08T17:57:46.9811699Z                  from /home/runner/work/wunderfox/wunderfox/gfx/cairo/cairo/src/cairo-fontconfig-private.h:49,
2024-10-08T17:57:46.9813421Z                  from /home/runner/work/wunderfox/wunderfox/gfx/cairo/cairo/src/cairo-xlib-screen.c:63:
2024-10-08T17:57:46.9815080Z ../../../../dist/system_wrappers/ft2build.h:3:15: fatal error: ft2build.h: No such file or directory
2024-10-08T17:57:46.9816136Z     3 | #include_next <ft2build.h>
2024-10-08T17:57:46.9816680Z       |               ^~~~~~~~~~~~
2024-10-08T17:57:46.9817183Z compilation terminated.
https://github.com/wunderfox/wunderfox/ ... 1251399983

How can I solve this? ft2build.h: No such file or directory
However, it really is here: https://github.com/wunderfox/wunderfox/ ... ft2build.h

Thanks for the help so far everyone! Much appreciated.