hello friends! new(ish)!
Firefox: Difference between revisions
>Galactus |
>Galactus |
||
Line 161: | Line 161: | ||
== Notable patches == | == Notable patches == | ||
=== [https://github.com/perfect7gentleman/pg_overlay/tree/master/www-client/firefox/files/kde OpenSUSE-KDE] === | |||
Bugs are explicitly stated. | |||
=== [https://github.com/perfect7gentleman/pg_overlay/tree/master/www-client/firefox/files/kde OpenSUSE-KDE] [[File:Active.png|x14px]] === | |||
This patchset makes trivial changes to Firefox to improve its aesthetic and functionality. | This patchset makes trivial changes to Firefox to improve its aesthetic and functionality. | ||
*Adds KDE integration to Firefox; | *Adds KDE integration to Firefox; | ||
Line 167: | Line 170: | ||
*Adds higher resolution icons. | *Adds higher resolution icons. | ||
=== [https://github.com/perfect7gentleman/pg_overlay/blob/master/www-client/firefox/files/pgo.patch PGO] === | === [https://github.com/perfect7gentleman/pg_overlay/blob/master/www-client/firefox/files/pgo.patch PGO] [[File:Stalled.png|x14px]] === | ||
This simple patch enables Profile-Guided Optimization techniques for the [[GCC]] build. PGO builds consist of two passes: the first one builds instrumented binaries, and the second one to rebuild optimized binaries. It might result in a [https://wiki.ubuntu.com/MozillaTeam/PGOBenchmarks slight performance increase of roughly ~5%], for double the compilation time. | This simple patch enables Profile-Guided Optimization techniques for the [[GCC]] build. PGO builds consist of two passes: the first one builds instrumented binaries, and the second one to rebuild optimized binaries. It might result in a [https://wiki.ubuntu.com/MozillaTeam/PGOBenchmarks slight performance increase of roughly ~5%], for double the compilation time. | ||
Line 176: | Line 179: | ||
**Solution: add the pgo-profile-run rule to the Makefile.in. | **Solution: add the pgo-profile-run rule to the Makefile.in. | ||
=== [https://aur.archlinux.org/cgit/aur.git/tree/?h=firefox-esr-privacy Privacy] === | === [https://aur.archlinux.org/cgit/aur.git/tree/?h=firefox-esr-privacy Privacy] [[File:Active.png|x14px]] === | ||
This patchset aims to disable certain Firefox 'features' that might undermine one's attempt at staying anonymous. In a way, it debloats it. | This patchset aims to disable certain Firefox 'features' that might undermine one's attempt at staying anonymous. In a way, it debloats it. | ||
*Certain connections to Mozilla are removed; | *Certain connections to Mozilla are removed; |
Revision as of 15:28, 20 April 2016
Firefox is a free and open source web browser developed and maintained by the Mozilla Foundation. It is known for its high degree of customisability through add-ons and its adherence to Web standards.
Official branches
Unfortunately, the v3.6.x series of Firefox is now unsupported. It will no longer receive security or stability updates.
Mozilla offers six officially compiled branches or channels of Firefox. These are ESR, Stable, Beta, Aurora, Nightly, and UX.
- The Extended support release or ESR branch of Firefox is geared towards large organisations who require long-term support for mass deployments, but it is can also be a good option for the technologically illiterate. It remains static for approximately one year after a major release, receiving new code only in the form of security and stability patches.
- The Stable branch of Firefox is geared towards the the average home or office Web user. It receives a major update every six weeks if all goes according to plan, but security and stability patches are issued as needed in the meantime.
- The Beta branch of Firefox is geared towards home users who want to try new features a few weeks early while contributing to Firefox development. It is generally quite stable with most remaining bugs being specific to certain configurations or drivers. In the course of a typical six week beta run, there are between seven and thirteen builds released.
- The Aurora or alpha branch is intended for testing and debugging purposes, but it is more suitable for general use than Nightly. Naturally, some instability and a few bugs are to be expected.
- The Nightly or pre-alpha branch is intended for testing and debugging purposes. It represents the bleeding edge of Firefox development, so the likelihood of encountering instability, security vulnerabilities, and major bugs is high. As the name implies, Nightly typically receives patches on a day-to-day basis and new features as soon as they become ready. Oddly, it is the only official branch in which native 64-bit builds for Windows are offered.
- The UX (Nightly) branch is a clone of the Nightly branch used to début and test user interface changes like the Australis project before they are added to Nightly. At the time of this writing, UX builds appear to be identical to standard Nightly builds.
Notable forks
Due to the free and open source nature of its code base, Firefox has given rise to several forks.
- GNU IceCat is a fork maintained by the GNU Project for those who happen to be of one mind with Richard Stallman. In addition to removing and replacing the copyrighted or trademarked parts of Firefox, the maintainer has added a couple of minor privacy and security features.
- Iceweasel is a fork maintained by the Debian Project. It is designed to allow the project to back-port as it pleased without running afoul of Mozilla's trademarks.
- Pale Moon is a fork of Firefox ESR dedicated to providing an optimised Firefox with the classic user interface layout of the v3.6.x series. Pale Moon is offered in both 32-bit and 64-bit builds, and uses a fork of the Gecko rendering engine called Goanna. For a complete list of the differences between Pale Moon and Firefox, see this page. (Note: it's made by a furry who has a Fursona named Moonchild. He has art and has written Furry stories. His Furry website is here.)
- The Tor Browser Bundle is a package designed specifically for the purposes of visiting Onion sites and browsing the Internet through the Tor network.
- Waterfox is a highly optimised build of Firefox for 64-bit systems running Windows. Unfortunately, it is rarely updated.
Notable add-ons
— Development process is active.
— Development process is slow. Software is mature enough to warrant less frequent updates, unless it comes with a "buggy" tag.
— Software isn't updated regularly. Mostly fine unless it comes with a buggy tag.
— Comes with a significant amount of bugs, possibly due to slow, or non-existent development.
— Compatible with e10s. Lacking this tag means it is either incompatible with it, or that the extension has been shimmed. If it lacks an e10s tag, look in the database for your extension.
Adblocking, privacy, and security
BetterPrivacy manages and auto-destroys flash cookies, aka super cookies.
Blender automatically spoofs your user agent string to another popular one.
Certificate Patrol discovers when certificates have changed.
Cookie Monster manages cookies permissions.
Decentraleyes loads common CDN resources locally, minimizing your exposure to third-party servers and slightly decreasing page load times, as well as the amount of data transferred.
HTTPS Everywhere encrypts your communications with many major websites, making your browsing more secure. If you can only install a couple of add-ons, this should be one of them.
HTTPS Finder detects available https and creates HTTPS Everywhere rules.
NoScript allows JavaScript, Java and other executable content to run only from trusted domains of your choice.
Random Agent Spoofer spoofs your user-agent string to any value of your choice, with the option to change to popular agent strings randomly. It also includes the ability to spoof various HTTP Referer request values, as well as multiple about:config tweaks.
RefControl controls what gets sent as the HTTP Referer on a per-site basis.
Self-Destructing Cookies auto-deletes cookies on tab close.
Priv8 is a Firefox addon that uses part of the security model of Firefox OS to create sandboxed tabs and manage them. Updated infrequently and might be incompatible with certain addons.
SessionManager, along with many other features allows you to encrypt your Firefox session.
uBlock Origin is a lightweight and low-resource adblocker. Has many filter lists built in, with EasyList, Peter Lowe’s Ad server list, EasyPrivacy, and Malware domains enabled by default. Can fully replace NoScript in advanced mode and outperform it, whilst offering more features.
- Not to be confused with 'uBlock', an EXTREMELY outdated fork with some very slight changes to the UI.
- If you feel bad about blocking advertisements, make a deal with yourself: you'll stop blocking ads when major international internet companies stop serving malware.
uMatrix, made by the creator of uBlock, is a high performance matrix-based firewall that supports hosts files, capable of blocking a myriad of objects, complete with per-hostname and global toggles, as well as plenty of privacy oriented features. Able to replace NoScript1, policeman, and request policy continued. Can be used with uBlock.
- 1 - Cannot replace NoScript's surrogate script functionality (which is very, VERY rarely used anyway). uBlock has a similar feature called redirect, whose purpose is to redirect blocked resources to locally-hosted, neutered contents.
Customisability
Classic Theme Restorer offers extensive GUI options to make Firefox look like old Firefox.
Tab Groups allows you to create tab groups, a feature that was once part of Firefox.
Tree Style Tabs shows tabs like a tree.
Dev tools
Live HTTP Headers lets you view HTTP headers, and includes a generator and a filter.
Usability
FxIF is a tool to view EXIF data in image properties.
Greasemonkey manages Userscripts.
- The Scriptish fork of this add-on that was once popular on /g/ is no longer recommended.
Redirector automatically redirects to user-defined urls on a per-hyperlink basis.
Singing Stallman, the Singing Stallman icon bides its time in the toolbar, waiting to be invoked in your time of need.
VimFx offers Vim bindings without changes in the UI.
YouTube Center enhances YouTube. It is recommended that you use the developer version, as per their wiki.
Notable patches
Bugs are explicitly stated.
OpenSUSE-KDE
This patchset makes trivial changes to Firefox to improve its aesthetic and functionality.
- Adds KDE integration to Firefox;
- Changes your
general.useragent.locale
tochrome://global/locale/intl.properties
; - Adds higher resolution icons.
PGO
This simple patch enables Profile-Guided Optimization techniques for the GCC build. PGO builds consist of two passes: the first one builds instrumented binaries, and the second one to rebuild optimized binaries. It might result in a slight performance increase of roughly ~5%, for double the compilation time.
As it stands, the clang-pgo.patch may not be working.
Bugs
- The Makefile.in file might not have the compile rule called pgo-profile-run1.
- Solution: add the pgo-profile-run rule to the Makefile.in.
Privacy
This patchset aims to disable certain Firefox 'features' that might undermine one's attempt at staying anonymous. In a way, it debloats it.
- Certain connections to Mozilla are removed;
- Disables: telemetry, location.services, sponsored tiles, Pocket, Hello, and Reader View;
- Applies certain privacy conscious settings to about:config by default;
- Enables tracking protection by default (disable if you use uBlock and/or uMatrix).
Tweaking
Below are options in about:config worth considering.
- dom.storage.enabled FALSE - Disable "client-side session and persistent storage" cookies. (bad for 8ch - the replies hypelinks next to the post number disappears)
- geo.enabled FALSE - Disable location data.
- general.useragent.override - Create as a String value and insert your own useragent.
- network.dns.disablePrefetch TRUE - Stop Firefox looking up IP addresses of links of the page you haven't/aren't going to.
- network.http.pipelining TRUE - Possible speedup for some servers (send multiple files through one connection).
- network.http.pipelining.max-optimistic-requests 8 - Total number of pipelines.
- network.http.pipelining.ssl TRUE - Pipeline with HTTPS sites.
- network.http.proxy.pipelining TRUE - Pipleline through proxy connections.
- network.http.sendRefererHeader - 0 = never (bad for 8ch), 1 = domain only, 2 = full url (default)
- network.prefetch-next FALSE - Don't download pages linked to the current page unless we click the link.
- dom.event.clipboardevents.enabled FALSE - Don't allow webpages to mess with the clipboard.
- dom.disable_window_move_resize TRUE - Don't allow webpages to move or resize the browser window.
- dom.ipc.plugins.flash.subprocess.crashreporter.enabled FALSE - Don't report flash plugin crashes.
- media.autoplay.enabled FALSE - Don't autoplay media.
- media.peerconnection.enabled FALSE - Important for VPN users. Don't allow p2p downloading of media.
- pdfjs.disabled TRUE - Don't run javascript within the builtin pdf viewer.
- reader.parse-on-load.enabled FALSE - disable "reader view"
- browser.pocket.enabled FALSE - disable pocket
- network.http.speculative-parallel-limit 0 - don't create connections to links you only hover over
- dom.push.connection.enabled FALSE - Disable push notifications (FF44+)
- dom.push.enabled FALSE - (as above)
- dom.webnotifications.enabled FALSE - (as above)
- dom.webnotifications.serviceworker.enabled FALSE - (as above)
- loop.enabled FALSE - Disable loop/conversation calling features.
- browser.urlbar.unifiedcomplete FALSE - Disables the "Search With" popup when typing into the location bar.
- media.ffmpeg.enabled FALSE (linux only as of FF44) - Disable mp4 playback through ffmpeg, to stop ffmpeg bugs breaking your firefox.
- media.eme.apiVisible FALSE - Stops pages from using a JavaScript library for DRM (Digital Rights Management/
Digital Restrictions Management) in html video.
- media.eme.enabled FALSE - (as above)
For a privacy conscious user.js, study https://github.com/crisbrm/user.js for a user.js that comes with minimal breakage, or https://github.com/pyllyukko/user.js for one with even more emphasis on security (occasionally at the cost of functionality, like when you completely disable DOM storage, for instance), and less emphasis on blending in.
To compare a myriad of privacy-conscious user.js files, use jm42's compare-user.js