mirror of
https://github.com/yokoffing/Betterfox.git
synced 2026-06-12 07:30:47 +05:30
Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 6c03671285 | |||
| 01e50884d0 | |||
| e099257937 | |||
| 85d41a05b6 | |||
| 4527a9cf19 | |||
| 56f56f7d1b | |||
| 7db312b830 | |||
| 0a49cceca4 | |||
| 419096e029 |
+18
-12
@@ -3,7 +3,7 @@
|
||||
* Fastfox *
|
||||
* "Non ducor duco" *
|
||||
* priority: speedy browsing *
|
||||
* version: 110 *
|
||||
* version: 111 *
|
||||
* url: https://github.com/yokoffing/Betterfox *
|
||||
***************************************************************************************/
|
||||
|
||||
@@ -41,18 +41,22 @@ user_pref("nglayout.initialpaint.delay_in_oopif", 0); // default=5
|
||||
// every 0.12 seconds by default. These redraws increase the total page load time.
|
||||
// The default value provides good incremental display of content
|
||||
// without causing an increase in page load time.
|
||||
// [NOTE] Lowering the interval will decrease the PERCEIVED page load time (user experience?)
|
||||
// but increase the TOTAL loading time (benchmarks?).
|
||||
// [NOTE] Slower connections will want lower value (100000).
|
||||
// Page load does not change dramatically for faster connections,
|
||||
// so you may favor a smoother page load (360000).
|
||||
// [NOTE] Lowering the interval will increase responsiveness
|
||||
// but also increase the total load time.
|
||||
// [WARNING] If this value is set below 1/10 of a second, it starts
|
||||
// to impact page load performance.
|
||||
// [EXAMPLE] 100000 = .10s = 100 reflows/second
|
||||
// [1] https://searchfox.org/mozilla-central/rev/c1180ea13e73eb985a49b15c0d90e977a1aa919c/modules/libpref/init/StaticPrefList.yaml#1824-1834
|
||||
// [2] https://dev.opera.com/articles/efficient-javascript/?page=3#reflow
|
||||
// [3] https://dev.opera.com/articles/efficient-javascript/?page=3#smoothspeed
|
||||
user_pref("content.notify.interval", 100000); // alt=360000 (.36s)
|
||||
user_pref("content.notify.interval", 100000); // (.10s); alt=500000 (.50s)
|
||||
|
||||
// PREF: frequency switch threshold [HIDDEN]
|
||||
// Raising the value will make the application more responsive at the expense of page load time.
|
||||
// [1] http://kb.mozillazine.org/Content.switch.threshold
|
||||
// [2] https://old.reddit.com/r/firefox/comments/11m2yuh/comment/jbjxp8s/?context=3
|
||||
//user_pref("content.interrupt.parsing", true); // [HIDDEN]
|
||||
//user_pref("content.switch.threshold", 1000000); // alt=1500000; default=750000; [HIDDEN]
|
||||
|
||||
// PREF: set the minimum interval between session save operations
|
||||
// Increasing this can help on older machines and some websites, as well as reducing writes
|
||||
@@ -221,11 +225,12 @@ user_pref("media.cache_resume_threshold", 6000); // default=30; when a network c
|
||||
// More efficient to keep the browser cache instead of
|
||||
// having to re-download objects for the websites you visit frequently
|
||||
//user_pref("browser.cache.disk.enable", true); // DEFAULT; overrides Securefox
|
||||
//user_pref("browser.cache.disk.capacity", 8192000); // 8 GB cache on disk
|
||||
//user_pref("browser.cache.disk.capacity", 1048576); // 1 GB disk cache; 8192000 = 8 GB
|
||||
//user_pref("browser.cache.disk.smart_size.enabled", false); // disable adaptive cache size on disk
|
||||
//user_pref("browser.cache.disk.max_entry_size", 51200); // DEFAULT
|
||||
//user_pref("browser.cache.disk.metadata_memory_limit", 1024); // increase the memory capacity in Firefox, in order to load more pages, faster
|
||||
//user_pref("browser.cache.max_shutdown_io_lag", 8); // number of seconds the cache spends writing pending data and closing files after shutdown has been signalled
|
||||
//user_pref("browser.cache.frecency_half_life_hours", 6); // DEFAULT; lower cache sweep intervals, the half life used to re-compute cache entries frequency (in hours)
|
||||
//user_pref("browser.cache.frecency_half_life_hours", 6); // DEFAULT; sweep intervals, the half life used to re-compute cache entries frequency (in hours)
|
||||
|
||||
// PREF: increase memory cache size
|
||||
// [1] https://www.makeuseof.com/tag/how-much-data-does-youtube-use/
|
||||
@@ -245,8 +250,9 @@ user_pref("network.buffer.cache.count", 128); // preferred=240; default=24
|
||||
// PREF: increase the absolute number of HTTP connections
|
||||
// [1] https://kb.mozillazine.org/Network.http.max-connections
|
||||
// [2] https://kb.mozillazine.org/Network.http.max-persistent-connections-per-server
|
||||
//user_pref("network.http.max-connections", 1800); // default=900
|
||||
//user_pref("network.http.max-persistent-connections-per-server", 9); // default=6; download connections; anything above 10 is excessive
|
||||
// [3] https://old.reddit.com/r/firefox/comments/11m2yuh/how_do_i_make_firefox_use_more_of_my_900_megabit/jbfmru6/
|
||||
user_pref("network.http.max-connections", 1800); // default=900
|
||||
user_pref("network.http.max-persistent-connections-per-server", 10); // default=6; download connections; anything above 10 is excessive
|
||||
//user_pref("network.http.max-persistent-connections-per-proxy", 48); // default=32
|
||||
//user_pref("network.http.max-urgent-start-excessive-connections-per-host", 6); // default=3
|
||||
//user_pref("network.http.pacing.requests.min-parallelism", 18); // default=6
|
||||
@@ -260,7 +266,7 @@ user_pref("network.buffer.cache.count", 128); // preferred=240; default=24
|
||||
// PREF: increase TLS token caching
|
||||
user_pref("network.ssl_tokens_cache_capacity", 32768); // default=2048; more TLS token caching (fast reconnects)
|
||||
|
||||
// PREF: temporary fix for upload speed bug in Firefox
|
||||
// PREF: temporary fix for upload speed in Firefox
|
||||
// [1] https://bugzilla.mozilla.org/show_bug.cgi?id=1596576
|
||||
//user_pref("network.http.http2.send-buffer-size", 33554432);
|
||||
//user_pref("network.http.http2.push-allowance", 33554432);
|
||||
|
||||
@@ -32,7 +32,7 @@ about:config tweaks to enhance [Mozilla Firefox](https://www.mozilla.org/en-US/f
|
||||
## about:Privacy
|
||||
Most repos have niche privacy and security concerns with little regard for speed, annoyances, or mainstream use. Betterfox was inspired by the [law of diminishing returns](https://pmctraining.com/site/wp-content/uploads/2018/04/Law-of-Diminishing-Returns-CHART.png) and the [minimum effective dose](https://medium.com/the-mission/less-is-more-the-minimum-effective-dose-e6d56625931e). For instance, features like WebGL and DRM are still enabled, and you won't find a setting like `privacy.resistFingerprinting` mentioned here<sup>^[*why?*](https://old.reddit.com/r/firefox/comments/wuqpgi/are_there_any_aboutconfig_tweaks_to_get_smooth/ile3whx/?context=3)</sup>. And while Betterfox is designed to set-and-forget, it contains plenty of options for those who like to tinker.
|
||||
|
||||
If your context calls for _anonymity_ and not just reasonable _privacy_, then please use [Tor Browser](https://www.torproject.org).<sup>[1](https://youtu.be/5NrbdO4yWek?t=4334)</sup> [Fingerprinting](https://smartframe.io/blog/browser-fingerprinting-everything-you-need-to-know/) is a high [threat model](https://thenewoil.org/threatmodel.html) issue that is [only addressed reasonably by Tor](https://github.com/arkenfox/user.js/wiki/3.3-Overrides-%5BTo-RFP-or-Not%5D).
|
||||
If your context calls for _anonymity_ and not just reasonable _privacy_, then please use [Tor Browser](https://www.torproject.org).<sup>[1](https://youtu.be/5NrbdO4yWek?t=4334)</sup> [Fingerprinting](https://smartframe.io/blog/browser-fingerprinting-everything-you-need-to-know/) is a high [threat model](https://thenewoil.org/en/guides/prologue/threatmodel/) issue that is [only addressed reasonably by Tor](https://github.com/arkenfox/user.js/wiki/3.3-Overrides-%5BTo-RFP-or-Not%5D).
|
||||
|
||||
## Assumptions
|
||||
Apply preferences from the [common overrides](https://github.com/yokoffing/Betterfox/issues/87) sticky if you want to revert the following behavior:
|
||||
@@ -59,19 +59,24 @@ Apply preferences from the [common overrides](https://github.com/yokoffing/Bette
|
||||
[6](https://old.reddit.com/r/pcmasterrace/comments/zwioe1/what_browser_will_you_be_using_in_2023_please/j1wmbxo/)
|
||||
[7](https://old.reddit.com/r/firefox/comments/zodxzx/performance_optimizations_for_firefox/j0memta/?context=2)
|
||||
[8](https://old.reddit.com/r/browsers/comments/106qwyk/in_contrast_to_previous_post_what_do_you_like/j3irpx0/?context=2)
|
||||
[9](https://old.reddit.com/r/firefox/comments/115va7d/list_of_aboutconfiguserjs_privacy_tweaks/j9700bc/?context=2)
|
||||
|
||||
### Browser Integration
|
||||
* [Pulse Browser](https://github.com/pulse-browser/browser#%EF%B8%8F-credits) | [files](https://github.com/pulse-browser/browser/tree/alpha/src/browser/app/profile) (Dec 2021)
|
||||
* [Ghostery Private Browser](https://github.com/ghostery/user-agent-desktop#community) | [files](https://github.com/ghostery/user-agent-desktop/tree/main/brands/ghostery/branding/pref) (Feb 2021)
|
||||
* [Betterfox adopted into Ghostery Private Browser](https://web.archive.org/web/20210509171835/https://www.ghostery.com/ghostery-dawn-update-more/)<sup>[1](https://web.archive.org/web/20210921114333/https://www.ghostery.com/ghostery-dawn-product-update/)</sup>
|
||||
|
||||
### YouTube
|
||||
* [Firefox is NOT private. Here's how to fix it.](https://youtu.be/Fr8UFJzpNls) (Mar 2023)
|
||||
* [I Hate Firefox. But I'm Still Switching Back to It.](https://youtu.be/w0SJFED5xK0?t=220) (Nov 2022)
|
||||
* [Español] [Optimizar y Acelerar Firefox](https://www.youtube.com/watch?v=3XtoONmq5_Q) (Nov 2022)
|
||||
* [How To Improve Firefox Performance](https://www.youtube.com/watch?v=N8IOJiOFVEk) (Dec 2021)
|
||||
|
||||
### Podcasts
|
||||
* [GhoSTORIES with Franz & Pete](https://anchor.fm/ghostories/episodes/S2E6-We-Talking-Ghostery-Dawn----Again-er0q02/a-a4o5vmh), S2|E6, 17:05-18:40 (Feb 2021)
|
||||
|
||||
### Browser Integration
|
||||
* [Pulse Browser](https://github.com/pulse-browser/browser#%EF%B8%8F-credits) | [files](https://github.com/pulse-browser/browser/tree/alpha/src/browser/app/profile) (Dec 2021)
|
||||
* [Ghostery Dawn](https://github.com/ghostery/user-agent-desktop#community) | [files](https://github.com/ghostery/user-agent-desktop/tree/main/brands/ghostery/branding/pref) (Feb 2021)
|
||||
* [Betterfox adopted into Ghostery Dawn](https://web.archive.org/web/20210509171835/https://www.ghostery.com/ghostery-dawn-update-more/)<sup>[1](https://web.archive.org/web/20210921114333/https://www.ghostery.com/ghostery-dawn-product-update/)</sup>
|
||||
|
||||
### Articles
|
||||
* [2023 Browser Showdown: Comparing Chrome, Brave, Firefox, Vivaldi, and Opera – Is it Worth the Switch?](https://www.appdate.lk/technology/2023-browser-showdown/)
|
||||
|
||||
### Guides
|
||||
* [FMHY Browser Tools: Privacy Hardened Firefox](https://www.reddit.com/r/FREEMEDIAHECKYEAH/wiki/storage/#wiki_privacy_hardened_firefox)
|
||||
@@ -80,13 +85,13 @@ Apply preferences from the [common overrides](https://github.com/yokoffing/Bette
|
||||
* [pyllyukko/user.js](https://github.com/pyllyukko/user.js) [comparator](https://jm42.github.io/compare-user.js/)
|
||||
|
||||
### Contributions
|
||||
* [Ghostery desktop browser](https://github.com/ghostery/user-agent-desktop/issues?q=is%3Apr+is%3Aissue+author%3Ayokoffing+)
|
||||
* [Ghostery Private Browser](https://github.com/ghostery/user-agent-desktop/issues?q=is%3Apr+is%3Aissue+author%3Ayokoffing+)
|
||||
* [Orion Browser](https://orionfeedback.org/?author=yokoffing)
|
||||
* [Kagi Search Engine](https://kagifeedback.org/?author=yokoffing)
|
||||
* [Various blocklists](https://github.com/yokoffing/filterlists#contributions)
|
||||
|
||||
## Credit
|
||||
* Many thanks to the [Firefox](https://www.mozilla.org/en-US/firefox/new/) team and to the people working on [Bugzilla](https://bugzilla.mozilla.org/home), fighting for the [open web](https://docs.openwebsandbox.org/learn/ows-articles/what-is-the-open-web).
|
||||
* Many thanks to the [Firefox](https://www.mozilla.org/en-US/firefox/new/) team and to the people working on [Bugzilla](https://bugzilla.mozilla.org/home), fighting for the [open web](https://builtin.com/software-engineering-perspectives/open-web).
|
||||
* This repository benefits from the ongoing research provided by [arkenfox](https://github.com/arkenfox/user.js). They are the foundation to any worthwhile `user.js`.
|
||||
|
||||
## Support
|
||||
|
||||
+10
-5
@@ -3,7 +3,7 @@
|
||||
* Securefox *
|
||||
* "Natura non constristatur" *
|
||||
* priority: provide sensible security and privacy *
|
||||
* version: 110 *
|
||||
* version: 111 *
|
||||
* url: https://github.com/yokoffing/Betterfox *
|
||||
****************************************************************************/
|
||||
|
||||
@@ -129,7 +129,7 @@ user_pref("urlclassifier.features.socialtracking.skipURLs", "*.instagram.com, *.
|
||||
// [2] https://web.dev/samesite-cookies-explained/
|
||||
//user_pref("network.cookie.sameSite.laxByDefault", true);
|
||||
//user_pref("network.cookie.sameSite.noneRequiresSecure", true);
|
||||
//user_pref("network.cookie.sameSite.schemeful", true); // DEFAULT 104+
|
||||
//user_pref("network.cookie.sameSite.schemeful", true);
|
||||
|
||||
// PREF: Hyperlink Auditing (click tracking).
|
||||
//user_pref("browser.send_pings", false); // DEFAULT
|
||||
@@ -156,11 +156,16 @@ user_pref("browser.uitour.enabled", false);
|
||||
|
||||
// PREF: enable Global Privacy Control (GPC) [NIGHTLY]
|
||||
// Honored by many highly ranked sites [2]
|
||||
// [1] https://globalprivacycontrol.org/
|
||||
// [TEST] https://global-privacy-control.glitch.me/
|
||||
// [1] https://globalprivacycontrol.org/press-release/20201007.html
|
||||
// [2] https://github.com/arkenfox/user.js/issues/1542#issuecomment-1279823954
|
||||
// [3] https://blog.mozilla.org/netpolicy/2021/10/28/implementing-global-privacy-control/
|
||||
//user_pref("privacy.globalprivacycontrol.enabled", true);
|
||||
//user_pref("privacy.globalprivacycontrol.functionality.enabled", true);
|
||||
// [4] https://help.duckduckgo.com/duckduckgo-help-pages/privacy/gpc/
|
||||
// [5] https://brave.com/web-standards-at-brave/4-global-privacy-control/
|
||||
// [6] https://www.eff.org/gpc-privacy-badger
|
||||
// [7] https://www.eff.org/issues/do-not-track
|
||||
user_pref("privacy.globalprivacycontrol.enabled", true);
|
||||
user_pref("privacy.globalprivacycontrol.functionality.enabled", true);
|
||||
|
||||
/****************************************************************************
|
||||
* SECTION: OSCP & CERTS / HPKP (HTTP Public Key Pinning) *
|
||||
|
||||
+5
-10
@@ -22,13 +22,11 @@ user_pref("https://dns.controld.com/******"); // DoH - ControlD
|
||||
|
||||
/** FASTFOX ***/
|
||||
user_pref("browser.sessionstore.restore_pinned_tabs_on_demand", true);
|
||||
user_pref("browser.sessionstore.interval", 150000); // 15 min.; set minimum interval between session save operations
|
||||
user_pref("browser.sessionstore.interval", 50000); // 5 min.; set minimum interval between session save operations
|
||||
user_pref("gfx.webrender.compositor.force-enabled", true); // enforce
|
||||
user_pref("layers.gpu-process.force-enabled", true); // enforce
|
||||
user_pref("media.hardware-video-decoding.force-enabled", true); // enforce
|
||||
user_pref("media.av1.enabled", false); // disable AV1 to force video hardware decoding
|
||||
user_pref("network.http.max-connections", 1800); // default=900
|
||||
user_pref("network.http.max-persistent-connections-per-server", 9); // default=6; download connections; anything above 10 is excessive
|
||||
user_pref("network.http.pacing.requests.min-parallelism", 18); // default=6
|
||||
user_pref("network.dnsCacheEntries", 20000); // maximum # of DNS entries
|
||||
user_pref("network.dnsCacheExpiration", 86400); // keep DNS entries for 24 hours
|
||||
@@ -92,7 +90,6 @@ user_pref("ui.key.menuAccessKey", 0); // remove underlined characters from vario
|
||||
user_pref("general.autoScroll", false); // disable unintentional behavior for middle click
|
||||
user_pref("ui.SpellCheckerUnderlineStyle", 1); // dots for spell check errors
|
||||
//user_pref("browser.tabs.loadInBackground", false); // CTRL+SHIFT+CLICK for background tabs; Settings>General>Tabs>"When you open a link, image or media in a new tab, switch to it immediately"
|
||||
user_pref("media.videocontrols.picture-in-picture.improved-video-controls.enabled", true); // PiP
|
||||
user_pref("media.videocontrols.picture-in-picture.display-text-tracks.size", "small"); // PiP
|
||||
user_pref("reader.parse-on-load.enabled", false); // disable reader mode
|
||||
//user_pref("reader.color_scheme", "auto"); // match system theme for when reader is enabled
|
||||
@@ -113,9 +110,7 @@ user_pref("image.avif.sequence.enabled", true); // Animated AVIF
|
||||
//user_pref("extensions.translations.disabled", false); // Language Translation; still needs Firefox Translations add-on
|
||||
user_pref("cookiebanners.service.mode", 2); // block cookie banners natively
|
||||
user_pref("cookiebanners.service.mode.privateBrowsing", 2); // block cookie banners natively in PB mode
|
||||
user_pref("privacy.globalprivacycontrol.enabled", true); // enable GPC
|
||||
user_pref("privacy.globalprivacycontrol.functionality.enabled", true); // enable GPC
|
||||
user_pref("privacy.userContext.enabled", false); // disable Containers
|
||||
user_pref("privacy.userContext.enabled", false); // disable Containers functionality
|
||||
user_pref("browser.crashReports.unsubmittedCheck.enabled", false); // true by default on NIGHTLY
|
||||
//user_pref("browser.urlbar.suggest.quickactions", false); // Quick Actions in URL bar
|
||||
//user_pref("xpinstall.signatures.required", false); // [ESR/DEV/NIGHTLY]
|
||||
@@ -130,17 +125,17 @@ user_pref("pdfjs.defaultZoomValue", "125"); // DESKTOP; alt=page-width; PDF zoom
|
||||
//user_pref("gfx.webgpu.force-enabled", true); // enable WebGPU
|
||||
user_pref("dom.ipc.processCount", 12); // Shared Web Content; 12-core CPU
|
||||
user_pref("dom.ipc.processCount.webIsolated", 12); // per-site; Isolated Web Content; 12-core CPU
|
||||
user_pref("gfx.webrender.quality.force-subpixel-aa-where-possible", true); // font improvement
|
||||
//user_pref("gfx.webrender.quality.force-subpixel-aa-where-possible", true); // font improvement
|
||||
user_pref("gfx.font_rendering.cleartype_params.rendering_mode", 5);
|
||||
user_pref("gfx.font_rendering.cleartype_params.cleartype_level", 100);
|
||||
user_pref("gfx.font_rendering.cleartype_params.force_gdi_classic_for_families", "");
|
||||
user_pref("gfx.font_rendering.cleartype_params.force_gdi_classic_max_size", 6);
|
||||
user_pref("gfx.font_rendering.directwrite.use_gdi_table_loading", false);
|
||||
// user_pref("gfx.font_rendering.cleartype_params.gamma", 898); // 1000-2200; https://www.reddit.com/r/firefox/comments/10ed7o2/comment/j4qar9y/
|
||||
//user_pref("gfx.font_rendering.cleartype_params.gamma", 898); // 1000-2200; https://www.reddit.com/r/firefox/comments/10ed7o2/comment/j4qar9y/
|
||||
user_pref("image.mem.decode_bytes_at_a_time", 262144); // alt=512000
|
||||
user_pref("browser.cache.memory.capacity", 2097152); // fixed maximum 2 GB in memory cache
|
||||
user_pref("browser.cache.memory.max_entry_size", 327680); // maximum size of in memory cached objects
|
||||
user_pref("media.memory_caches_combined_limit_pc_sysmem", 40);
|
||||
//user_pref("media.memory_caches_combined_limit_pc_sysmem", 40);
|
||||
user_pref("media.memory_caches_combined_limit_kb", 3145728);
|
||||
//user_pref("font.name.serif.x-western", "Roboto Slab"); // serif font
|
||||
//user_pref("font.name.sans-serif.x-western", "Roboto"); // sans-serif font
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
/****************************************************************************
|
||||
* Betterfox *
|
||||
* "Ad meliora" *
|
||||
* version: 110 *
|
||||
* version: 111 *
|
||||
* url: https://github.com/yokoffing/Betterfox *
|
||||
****************************************************************************/
|
||||
|
||||
@@ -51,6 +51,8 @@ user_pref("browser.cache.memory.max_entry_size", 153600);
|
||||
/** NETWORK ***/
|
||||
user_pref("network.buffer.cache.size", 262144);
|
||||
user_pref("network.buffer.cache.count", 128);
|
||||
user_pref("network.http.max-connections", 1800);
|
||||
user_pref("network.http.max-persistent-connections-per-server", 10);
|
||||
user_pref("network.ssl_tokens_cache_capacity", 32768);
|
||||
|
||||
/****************************************************************************
|
||||
@@ -63,6 +65,8 @@ user_pref("urlclassifier.trackingSkipURLs", "*.reddit.com, *.twitter.com, *.twim
|
||||
user_pref("urlclassifier.features.socialtracking.skipURLs", "*.instagram.com, *.twitter.com, *.twimg.com");
|
||||
user_pref("privacy.query_stripping.strip_list", "__hsfp __hssc __hstc __s _hsenc _openstat dclid fbclid gbraid gclid hsCtaTracking igshid mc_eid ml_subscriber ml_subscriber_hash msclkid oft_c oft_ck oft_d oft_id oft_ids oft_k oft_lk oft_sk oly_anon_id oly_enc_id rb_clickid s_cid twclid vero_conv vero_id wbraid wickedid yclid");
|
||||
user_pref("browser.uitour.enabled", false);
|
||||
user_pref("privacy.globalprivacycontrol.enabled", true);
|
||||
user_pref("privacy.globalprivacycontrol.functionality.enabled", true);
|
||||
|
||||
/** OCSP & CERTS / HPKP ***/
|
||||
user_pref("security.OCSP.enabled", 0);
|
||||
@@ -240,7 +244,6 @@ user_pref("browser.link.open_newwindow.restriction", 0);
|
||||
user_pref("dom.disable_window_move_resize", true);
|
||||
user_pref("browser.tabs.loadBookmarksInTabs", true);
|
||||
user_pref("browser.bookmarks.openInTabClosesMenu", false);
|
||||
user_pref("dom.popup_allowed_events", "change click dblclick auxclick mousedown mouseup pointerdown pointerup notificationclick reset submit touchend contextmenu"); // reset pref; remove in v.111
|
||||
user_pref("layout.css.has-selector.enabled", true);
|
||||
|
||||
/****************************************************************************
|
||||
|
||||
Reference in New Issue
Block a user