GNU IceCat

From LinuxReviews
(Redirected from Icecat)
Jump to navigationJump to search
GNU IceCat
Icecat-icon.png
GNU IceCat on a GNU/Linux machine showing the IceCat/Gnuzilla homepage
GNU IceCat on a GNU/Linux machine showing the IceCat/Gnuzilla homepage
Developer(s)Mozilla Corporation
Stable release
78.2.0esr / August 25, 2020; 3 years ago (2020-08-25)
Repositoryhttps://git.savannah.gnu.org /cgit/gnuzilla.git/
Written inC, C++, JavaScript, Rust
EngineQuantum
Operating systemMulti-platform (Linux, Windows, macOS, *BSD, Android)
Standard(s)HTML5, CSS3, WebP, VP9, AV1
TypeWeb browser
License
  • MPL 2.0
  • GNU GPL v3 (IceCat specific build scripts)
Websitehttps://www.gnu.org /software/gnuzilla/
Icecat-icon.png

The GNU IceCat web browser is a re-branded Mozilla Firefox Extended Support Release version with slightly different more privacy-respecting defaults, different graphics and branding, some additionally really strange bugs and a hand-full of bundled extensions meant to provide more end-user freedom. The practical result of those extensions is a close to useless browser which is not suitable for most people. IceCat can be configured to be a somewhat usable privacy-respecting web browser given some time and effort even it if by default does not provide anything remotely resembling a good user-experience.

GNU IceCat is a re-brand, not a fork. It is literally just a bash build-script called makeicecat, some configuration files and extensions and a different logo. It is not a fork like Pale Moon, GNU IceCat has no changes to the original Mozilla Firefox source code.

The GNU IceCat Specific Features Who Set It Apart from Mozilla Firefox[edit]

The differences between GNU IcatCat and plain stock Mozilla Firefox are:

  • GNU IceCat is built using the Firefox "extended support" releases (ESR).
  • The logo and other graphics is blue instead of red and the icon features a cat instead of a fox.
  • The pre-configured defaults are different. Most of the differing default settings are privacy-related. Telemetry spyware and the Firefox "studies" backdoor are disabled.
  • GNU IceCat includes several mostly privacy-enhancing web browser extensions that are enabled by default. One of them, Reveal hidden HTML is useless and extremely annoying and another, LibreJS, breaks most websites.
Web Browser Extensions Bundled With GNU IceCat
disable-polymer-youtube "Disables the use of polymer on YouTube"

Only active on ://www.youtube.com/. Has not been updated since 2018. Unclear if it actually does anything.

GNU LibreJS GNU LibreJS which disables most JavaScript thus breaking most websites (See Features and usability below). It claims to block "non-free" JavaScript but it doesn't actually care (or know) if scripts are free or non-free.
HTTPS Everywhere Ensures that sites that are available using both http:// and https:// use https://. Practically useful if you visit the few sites that do not redirect http requests to https and do not set a Strict-Transport-Security header.
LibreJS/USPS compatibility Ensures that USPS.com, and just that site, works when the GNU LibreJS extension is active
Reveal hidden HTML Makes a very annoying "Hidden HTML detected, would you like to reveal it?" dialog box pop-up on half the sites you visit. Complete garbage. First thing you should do if you try GNU IceCat is to disable this trash.
Searxes' Third-party Request Blocker "Prevent your browser from connecting to third-party resource without user consent."
The homepage (searxes.danwin1210.me) is dead.
A close-up inspection of tprb_core.js reveals a long list of hard-coded domains, the block-list is built into the extension itself (as opposed to Ublock Origin which updates the filter lists from external sources regularly).
ViewTube "Watch videos from video sharing websites with extra options". Provides extra functionality on 3 Italian-language video sharing websites.
Workarounds for nonfree JS "A collection of work-around scripts for a few different websites that are impossible to use without non-free JavaScript". Has site-specific fixes for sites that break with LibreJS, concretely:
  • Google Docs
  • goteo.org
  • McDonalds Wifi (assist in getting free wifi at some American fat people hangout)
  • pay.gov
  • rsf.secure.force.com (now closed)
  • sumofus.org

GNU IceCat used to bundle an additional extension called "Onion Browser Button" which claimed to allow you to "Easily browse the internet using TOR proxy with just one click!". It didn't, it would claim to enable Tor and do absolutely nothing beyond claiming Tor was enabled. That extension, last updated in 2010, was finally removed from the GNU IceCat git repository in June 2020 after it had been included in a broken state for half a decade. Don't use it if your distribution still ships a GNU IceCat version with that extension. Fedora eradicated it from their packages for Fedora 31, 32 and 33 in September 2020.

Features and usability[edit]

GNU IceCat 78.2.0esr showing YouTube.jpg
GNU IceCat 78.2esr showing a broken YouTube website. This is LibreJS at work.

Gnu-head.jpg
GNU as seen in the SuperTuxKart kart racing game.

GNU IceCat is in most ways identical to the very mature Mozilla Firefox web browser. The page rendering engine is mature and sound. The vast majority of web pages can, in theory, be rendered correctly and used as they were intended. Most websites are not rendered correctly or usable in a stock out-of-the-box GNU IceCat web browser. This is mostly thanks to the LibreJS extension.

JavaScript is a computer programming language websites can use to execute simple code in web browsers. The vast majority of big websites, and a large portion of smaller ones, use small programs written in JavaScript to add various functionality. These JavaScript programs are in many cases just used for advertising and tracking "features". JavaScript programs can also be used to provide features like editors, media players and a range of other things. Richard Stallman has written a long essay titled "The JavaScript Trap" where he explains that much of the JavaScript served by modern websites is plain malware. He does have a point.

GNU IceCat comes with an extension called GNU LibreJS which disables all JavaScript that is not marked as being free software. That means that as good as all JavaScript, including free software JavaScript, is blocked by default. The practical effect is that most sites will either not load at all or lack functionality. As good as all the bigger websites are broken and most smaller ones are also broken in GNU IceCat thanks to the LibreJS extension.

Most of the JavaScript embedded in for-profit websites is non-free software. We can understand why a web browser made by a free software advocacy group would block it. That being said: This decision does have a hugely negative and very noticeable impact on the end-user experience. Anyone who is not particularly tech-savvy or tech-interested will simply see that most websites are broken and conclude that GNU IceCat is a fundamentally broken and practically useless web browser. Demanding that your wife use GNU IceCat with LibreJS enabled as her default web browser will likely get you divorced.

GNU IceCat tries to solve the problem of sites requiring non-free JavaScript programs by providing an extensions that provides free JavaScript replacement programs for a handful of specific websites. The intentions may be good but this approach is just silly and not feasible. There are at least two major problems which simply can not be solved:

  1. Websites change. JavaScript replacement extensions require constant update and will regularly break as the websites they are for change.
  2. There are a whole lot of websites on the Internet. The Internet is a really big and very diverse place. Creating free JavaScript programs for hundreds of thousands of different websites is simply not realistic. Shipping GNU IceCat with thousands of extensions in constant need of updates would not be a good idea even if it was possible to write some JS for every website out there.

The GNU LibreJS does have a button you can click on to get a menu where specific JavaScript can be white-listed. This is useful since GNU LibreJS fails to identify free software JavaScript as free, resulting in most scripts being disabled by default. It is not a very practically usable feature, you do have to manually tweak every single website. That's a lot of work.

Another extension GNU IceCat ships with called Searxes makes the IceCat JavaScript allergy mess worse because it has also got JavaScript disabling functionality. That means that you have to fight it too on some of the sites you visit.

Odd IceCat-Specific Bugs[edit]

Menu navigation (when the menu is enabled) using the keyboard is utterly broken in GNU IceCat if layers.acceleration.force-enabled is set to true. That setting enables OpenGL accelerated rendering. It is not enabled by default, the special about:support page reveals that GNU IceCat uses "Basic" non-accelerated rendering by default. Navigating the menu with OpenGL acceleration results in up-arrow moving down and down-arrow up the first time you change direction. This very odd bug is not present in Firefox 78esr when OpenGL accelerated rendering. Disabling all extensions makes no difference, it is entirely depended on the layers.acceleration.force-enabled setting.

The other "feature-adding" extensions[edit]

Icecat complaining about hidden html.jpg
A really annoying pop-up will appear on half the web pages you visit using GNU IceCat.

GNU IceCat comes with a "Reveal hidden HTML" extension that will frequently show a pop-up claiming there is somehow "Hidden HTML" on page which can be "revealed". There is typically nothing to "reveal". This extension will just annoy you regularly and never do anything useful. It is just an huge annoyance.

The included HTTPS Everywhere extension does not hamper general usability (unlike most of the included extensions). Why it's installed or what it is supposed to do are good questions. It does not and can not turn https on everywhere, either a site uses https or it doesn't. That's server-side, not client-side and no extension or plugin can change that. It will supposedly redirect you from http to https if a site supports both. Most sites with https will do that for you anyway and most will set a policy asking browsers only use https the first time you visit. This extension seems utterly pointless but it's inclusion fine, it does not appear to have any negative effects.

Mozilla-Provided Themes And Extensions[edit]

GNU IceCat with custom theme.jpg
GNU IceCat with a Oh My Girl theme made for Mozilla Firefox

GNU IceCat used to refuse to install any Mozilla Firefox themes or extensions from addons.mozilla.org. That decision put huge restrictions on what you could do with GNU IceCat.

GNU IceCat 78.2.0esr does allow you to install and use any theme or extension made for Mozilla Firefox from addons.mozilla.org.

Verdict and Conclusion[edit]

The GNU IceCat web browser is border-line useless out of the box. While the "don't subject users to non-free JavaScript software" stance is admirable, the practical effect is a dismal, frustrating and outright bad end-user experience.

Having to turn JavaScript on for every site which uses it, even sites running free software with free software JavaScript which is what this site does, is annoying, impractical and not something less tech-savvy computers users will be able to do. A few tech-savvy power-users may appreciate it: Mozilla Firefox with both the NoScript and the Ublock Origin extensions behaves similarly.

The very annoying "Reveal hidden HTML" that causes a meaningless pop-up to appear on half the websites out there adds to the very bad end-user experience.

It is possible to make IceCat a somewhat acceptable browser by disabling all the bundled extensions. Doing that kind of negates the point of using GNU IceCat, but it is does solve some of the usability problems.

GNU IceCat is, all-in-all, a broken web browser and a horrible end-user experience. If you just want to get on Instagram and browse your favorite k-pop idol's latest selfies or watch music videos on Naver TV then GNU IceCat is absolutely not for you. It may be someone attractive if you're a die-hard free software enthusiast, but even then it's a hard sell due to the broken Privacy & Security preference menu.

Under the hood[edit]

GNU IceCat stores it's settings in $HOME/.mozilla/icecat where there will be a "profile" created when you first start it. It is possible to have several profiles. These can be created and managed by starting it with icecat -P ProfileManager just like then can in Mozilla Firefox. Profiles can be used by starting it with icecat -P NameOfProfileToUse

The icecat package will typically install to /usr/lib64/icecat/ with extensions in /usr/lib64/icecat/browser/extensions

LibreJS Script Licensing[edit]

The GNU Project has a "Setting Your JavaScript Free" page where they explain how they would like everyone on the web using free JavaScript software. They also maintain a script-libraries.json file listing well-known free JavaScript which is bundled with the LibreJS extension.

It is, in practice, a bit hard to make free software content management systems tag JavaScript with a license the way the GNU project proposes because they tend to minify JavaScript. It is further complicated if you use some extensions or modules with GNU GPL v2 JS and some with GNU GPL v3 JS if all scripts are minified into one file since each individual script should in that case be market separately.

Links[edit]

GNU IceCat's homepage is at www.gnu.org/software/gnuzilla/ even tough it's been a while since it was renamed from GnuZilla to GNU IceCat.

The git repository is at git.savannah.gnu.org /cgit/gnuzilla.git/.


avatar

Anonymous (8ea6dfe037)

31 months ago
Score 0

I been practicing 'Browser Isolation' before Rob Braxman Tech on YouTube recommends. I use it for website control panels. I like IceCat, but it can be a bad kitty, however with a little training it will become almost purr-IT (perfect) 8}

Rob Braxman

https://www....clGGw/videos
avatar

Anonymous (a2098b0d20)

29 months ago
Score 0
Wow,talk about bad mouthing something and the discriminating remark about the McDonald's "fat people hang out" is the indication someone (you,writer) hasn't been put to bed for their daily nap. But since this article is Completely full of negativity and since you obviously know everything about this stuff.(Not), I got one question for you. Where's the browser you built??? Yeah, I didn't Think so. Also I haven't had to many issues using it and YouTube videos plays with occasional glitch. But no more problems then iceraven, bromite and brave browsers I also use on Android. And FYI: Easily the Worst written review I have Ever unfortunately read. Guaranteed won't visit this site ever
avatar

Anonymous (fb60b7a48c)

24 months ago
Score 0

I have GNU ICECAT 91.8.0esr (ARCH) update-downloaded and built --granted it takes a while building but its worth it . A bit of work in about:config and I can get accepted on websites Mozilla FF isn't.

I don't understand your harshness towards it --are you a Google Chrome user with more "backdoors " than MS and constant "phone homes " as shown when using network tracers ??
avatar

Anonymous (22d08addd5)

16 months ago
Score 0
Unfortunately most of this review was spot-on. I notice some major improvements in the installation/version povided by the latest versions of Fedora though. Hang on to Icecat, it does hold some promise.
avatar

Anonymous (df0a3e1419)

4 months ago
Score 0
GNU IceCat is a privacy-focused browser that respects the user's freedom and does not collect unnecessary data. In GNU IceCat, telemetry collection is among the features that are disabled by default. This is part of the browser's commitment to user privacy and freedom. The browser also includes several additional security and privacy features not found in the mainline Firefox browser. If you are concerned about privacy and telemetry, GNU IceCat is a good choice (Phind.com, A.I., 2023). I've been test-running a portable version of late (Nov. 23), and found it to be faster than Firefox. Admittedly, what the author states in regards to the 'JS' limitations is true - and like him, I recommend the disablement of some of the addons to achieve full browsing functionality. I only run Icecat with the addons: JShelter, LibrifyJS: libgen.me, & HTTPS everywhere. Although slightly annoying, the JShelter addon reveals and notifies the user about websites that are trying to fingerprint their browser. It presents an easy to read summary of privacy offending websites, and reveals the shocking, sobering, reflections relating to the abuse of internet users privacy and thus security. Furthermore, you can easily paste your current Firefox profile into Icecat - so all your previous Firefox configs apply to Icecat. In addition, if you already use a CSS script that modifies Firefox's appearance, this too, can be effectively applied to Icecat. Sure, maybe not a browser for Joe Bloggs, but he's probably on Chrome anyway ; ) But for anyone with a smidge of creativity, who dislikes tracking, and seeks to increase their internet privacy, Icecat is certainly worth a look in. Finally, both regular and portable installers are now available. I'm a windows 11 user, and utilised Reddit to gather the info required to get my installation of Icecat pumping nicely along, and happily rendering most websites on the internet. My version of Icecat equates to the Firefox 115.4 Esr version - so that is nice too : )
avatar

Anonymous (07d118606b)

3 months ago
Score 0

Hi, given the lack of available binaries of Icecat I started distributing it for as many OSs as I can here https://icecatbrowser.org

I hope you guys like it.

Chip
Add your comment
LinuxReviews welcomes all comments. If you do not want to be anonymous, register or log in. It is free.