this post was submitted on 21 Nov 2023
2084 points (98.6% liked)
Technology
59609 readers
3831 users here now
This is a most excellent place for technology news and articles.
Our Rules
- Follow the lemmy.world rules.
- Only tech related content.
- Be excellent to each another!
- Mod approved content bots can post up to 10 articles per day.
- Threads asking for personal tech support may be deleted.
- Politics threads may be removed.
- No memes allowed as posts, OK to post as comments.
- Only approved bots from the list below, to ask if your bot can be added please contact us.
- Check for duplicates before posting, duplicates may be removed
Approved Bots
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
The way Mozilla worked and Firefox still works is there is a cross platform front-end implemented in XUL which is XHTML, CSS and Javascript. The engine underneath is the same (Gecko) but the frontend app over the top is what the user sees and controls buttons, menus, functionality.
Firefox was basically a fork of Mozilla stripped of the not-browser stuff and a cleaned up UI. It proved popular as a prototype so it grew into its own thing and Mozilla suite was abandoned. There is still a Seamonkey project that keeps Mozilla suite alive but it's outside of the Mozilla foundation.
The reason it's faster is that Mozilla was an entire suite expressed as a lot of XUL so it impacted loading times. XUL also had this neat trick that you could overlay XUL over the top of other XUL so the mail app was injecting buttons, menus and whatnot into the browser and vice versa. This was cached but it still had to be loaded. In addition and probably just as impactful, was that Mozilla shipped as dynamic libraries (DLLs) and a relatively small EXE, so it took time to start. In Firefox, the number of DLLs was reduced with static linking so it was more efficient to load.
If I remember correctly, XUL/XBL is dead. They removed that code a while back after they transitioned to WebExtensions. The current frontend is HTML, CSS and JavaScript.
There are still bits of XUL around but I believe the preference is to use HTML elements wherever possible and they've been stripping XUL elements out.