user.js

Activity, over time

Daily observations from the public event archive.

Attention

Daily stars & forks

Loading attention chart

Star accumulation

Cumulative stars

Loading star accumulation chart

Pull requests

Daily opens & merges

Loading pull requests chart

Conversations

Daily issues & comments

Loading conversations chart

Community

Daily accounts & reviews

Loading community chart

Releases

Daily releases

Loading releases chart

Mentions

6posts · 30d
Nov 30 posts
  1. @Praveen84733790 @AndroidPolice @firefox Ref github.com/arkenfox/user.js/wiki/1.1-to-arkenfox-… theverge.com

    6 views
  2. @LundukeJournal Just use arkenfox/user.js and problem solved without using a Chromium browser.

    238 views
  3. arkenfox user.js: The Documented Firefox Hardening Config (Setup, Breakage, and Overrides) arkenfox user.js is a hardened Firefox configuration maintained by the community. It sets hundreds of about:config preferences to improve privacy and security. Here's what it does, how to use it, and what to be careful about. What arkenfox Is arkenfox is a user.js file — a JavaScript config file that Firefox reads on startup to set preferences. The arkenfox project maintains a carefully researched set of preferences with inline documentation explaining why each setting is chosen. Source: arkenfox/user.js The configuration is aggressive: it's designed for people who prioritize privacy and security over convenience. Expect some breakage. Installation # Download the user.js to your Firefox profile cd ~/.mozilla/firefox/YOUR-PROFILE.default-release/ # Download the file curl -O https://raw.githubusercontent.com/arkenfox/user.js/master/user.js # Keep updater.sh for future updates curl -O https://raw.githubusercontent.com/arkenfox/user.js/master/updater.sh chmod +x updater.sh # Run with: ./updater.sh Find your profile directory: about:support → Profile Directory → click "Open Directory." Important: Read the documentation before applying. arkenfox has extensive inline comments in user.js explaining every setting. What arkenfox Configures Privacy - privacy.resistFingerprinting = true — standardizes many browser properties - Letterboxing (standardizes window size) - RFP (Resist Fingerprinting) for canvas, WebGL, audio, fonts - Strict Enhanced Tracking Protection - Total Cookie Protection (already Firefox default) - Disable navigator.language leaking browser locale - Disable performance.timeOrigin for timing attacks Security - Disable form autofill - Disable password save prompts - Disable OCSP soft-fail (certificate validation) - Disable WebRTC by default - Disable JavaScript eval() (warning: this breaks many sites) - Disable service workers (warning: breaks PWA features) - Strict SSL/TLS settings Anti-Telemetry - All telemetry, crash reports, studies disabled - No sponsored content - No Pocket - No Firefox Accounts integration preferences Cache and Storage - Clear data on shutdown (configurable) - Disk cache disabled or limited - No session restore across restarts The Overrides File arkenfox recognizes that its defaults are too aggressive for some legitimate use cases. The solution: a user-overrides.js file in the same profile directory. // user-overrides.js — your personal overrides user_pref("javascript.options.asmjs", true); // Re-enable asm.js user_pref("media.eme.enabled", true); // Re-enable DRM for streaming user_pref("dom.serviceWorkers.enabled", true); // Re-enable service workers user_pref("signon.rememberSignons", true); // Re-enable password manager Run updater.sh to apply both files — arkenfox's settings are applied first, then your overrides. Common Breakage and Fixes Login flows broken: - Cause: form autofill disabled, possibly privacy.resistFingerprinting interfering with fingerprint-based CAPTCHA - Fix: Add exceptions or re-enable signon.autofillForms in overrides Service workers / PWAs not working: - Cause: dom.serviceWorkers.enabled = false - Fix: user_pref("dom.serviceWorkers.enabled", true) in overrides Netflix / Spotify broken: - Cause: DRM (Widevine) disabled or media.eme.enabled = false - Fix: user_pref("media.eme.enabled", true) in overrides eval() errors in console: - Cause: JavaScript's eval() disabled - Fix: user_pref("javascript.options.asmjs", true) and related flags — though this is intentional for security WebRTC broken (video calls): - Cause: WebRTC may be disabled - Fix: user_pref("media.peerconnection.enabled", true) in overrides (or use media.peerconnection.ice.no_host = true for leak protection without disabling) Sites detecting you as a bot: - Cause: privacy.resistFingerprinting = true spoofs properties inconsistently - Fix: Create site-specific exceptions or disable RFP for affected sites Updating arkenfox cd ~/.mozilla/firefox/YOUR-PROFILE/ ./updater.sh The updater downloads the latest user.js and re-applies it, then re-applies your overrides. Important: After Firefox updates, always re-run the updater to get any new settings for the new Firefox version. arkenfox vs LibreWolf | | arkenfox | LibreWolf | |---|---|---| | Approach | user.js (settings) | Build-level changes | | DRM | Can override | Requires Widevine install | | Sync | Firefox Accounts intact | Removed | | Breakage risk | High (configurable) | Moderate | | Update lag | None (Firefox updates apply instantly) | Days behind Firefox | | Transparency | Fully documented inline | Open source | arkenfox is more configurable. LibreWolf is easier to deploy (download and run). For advanced users who want to understand every setting, arkenfox. For users who want "hardened Firefox out of the box," LibreWolf. Who Should Use arkenfox - Users who want to understand exactly what their browser does and why - Privacy researchers who need documented, auditable settings - Advanced users comfortable troubleshooting breakage - Organizations that want a customizable privacy baseline with a paper trail (the documented comments) Not recommended for: - Non-technical users - Users who need extensive web app compatibility (banking, enterprise web apps) - Users who want a "set and forget" solution (LibreWolf is better for that) arkenfox is the gold standard for documented Firefox hardening, but it requires active maintenance and willingness to debug breakage.

  4. Firefox about:config: The Power User Settings Guide Firefox's about:config page is a direct interface to the browser's preference system — hundreds of settings not exposed in the regular UI. Here's a practical guide for power users. Opening about:config Type about:config in the address bar. Firefox shows a warning about voiding your warranty (click "Accept the Risk and Continue"). You're now in the preference editor. Use the search bar at the top to filter preferences. You can add, modify, or reset any preference. Essential Tweaks Performance gfx.webrender.all — Force-enable WebRender GPU compositor. Default is auto-detected. Set to true if your GPU supports it but it's disabled. gfx.webrender.software — Use software WebRender if GPU WebRender causes issues. browser.tabs.unloadOnLowMemory — Automatically unload inactive tabs when RAM is low. Default false on desktop. browser.sessionstore.interval — How often (in ms) Firefox saves your session. Default 15000 (15 seconds). Can increase to 60000 to reduce disk I/O. Privacy privacy.firstparty.isolate — First-party isolation. Isolates cookies, cache, and other state per site. Can break some SSO. Default false. privacy.resistFingerprinting — Reduces fingerprinting by lying to sites about fonts, canvas, timezone, etc. Breaks some sites. Part of Tor Browser's approach. network.cookie.cookieBehavior — Cookie handling. Values: - 0: All cookies allowed - 1: Block third-party from new sites - 2: Block all cookies - 4: Block all third-party cookies - 5: Reject tracking cookies (default in newer Firefox) geo.enabled — Geolocation. Set to false to disable entirely. media.peerconnection.enabled — WebRTC. Setting to false prevents WebRTC IP leaks when using a VPN. May break video calls. UI & Behavior browser.tabs.tabMinWidth — Minimum tab width in pixels. Default 76. Lower it to show more tabs. browser.urlbar.suggest.history — Whether address bar suggests from history. Default true. browser.search.suggest.enabled — Search suggestions in address bar. Default true. dom.event.contextmenu.enabled — Right-click context menu. Sites can disable the right-click menu with JS; this setting ignores that. layout.css.devPixelsPerPx — Global UI scale factor. Default -1 (use OS setting). Set to 1.5 for 150% scaling on Wayland or HiDPI without OS support. browser.newtabpage.enabled — Show the Firefox home page on new tab. Set to false for a blank new tab. Network network.dns.disablePrefetch — DNS prefetching. Firefox prefetches DNS for links on the current page. Set to true to disable. network.http.max-connections — Max simultaneous HTTP connections. Default 900. network.http.pipelining — HTTP pipelining. Generally left at default. network.prefetch-next — Prefetch pages Firefox thinks you'll visit. Set to false if you don't want this. Developer devtools.chrome.enabled — Enable browser chrome debugging in DevTools. Required for about:devtools-toolbox. browser.dom.window.dump.enabled — Enable dump() for console output from chrome JS. javascript.options.strict — Enable strict mode for all JS (developer use). Resetting Preferences To reset a preference to its default value: right-click it → "Reset" (or click the reset arrow on the right). To reset all preferences: don't manually delete all of them. Instead, close Firefox, navigate to your profile folder, and delete prefs.js. Firefox recreates it from defaults on next launch. Find your profile folder: about:support → Profile Directory → Open Directory. User.js For persistent tweaks that survive Firefox's preference resets, use user.js: 1. Navigate to your Firefox profile directory 2. Create a file named user.js 3. Add preferences in this format: user_pref("privacy.firstparty.isolate", true); user_pref("browser.tabs.tabMinWidth", 50); Firefox reads user.js on every startup and applies these settings. This means Firefox can't override them through updates — useful for settings that occasionally get reset. Popular curated user.js configurations: arkenfox/user.js for privacy-focused tweaks. Managing Sessions with about:config One relevant preference: browser.sessionstore.max_tabs_undo — how many closed tabs are kept for ctrl+shift+T. Default 25. For more comprehensive session management (saving named sessions, restoring specific tab sets without about:config), Tab Manager & Session Saver handles this at the extension level — no about:config required. --- about:config gives you fine-grained control over Firefox's internals. Start with a few targeted changes rather than applying a huge user.js file — that makes it easier to diagnose if something breaks.

  5. Firefox about:config: The Settings That Actually Matter for Developers about:config is Firefox's advanced settings panel — hundreds of knobs most users never touch. Here's which ones are actually useful for developers (not the paranoia list, not the full list — the practical ones). Accessing about:config Type about:config in the address bar. Accept the warning. Search for settings by name. Settings are: - Boolean: true/false toggle (double-click to toggle) - Integer: number (double-click to edit) - String: text value (double-click to edit) Reset to default: right-click any modified setting → Reset. Development Convenience // Show full URL in address bar (no truncation) browser.urlbar.trimURLs = false // Disable Accessibility Service (can improve DevTools performance on Windows) accessibility.force_disabled = 1 // Allow invalid SSL certificates on localhost (useful for local HTTPS dev) // Note: changes security.tls.insecure_fallback_hosts or use about:certificate-error workaround // More commonly: visit about:certificate-error on the localhost page, click Advanced > Accept Risk // Enable CSS Grid and Flexbox inspector badges in DevTools // These are now on by default in recent Firefox, but if not: devtools.inspector.flexboxHighlighter.enabled = true Performance Tweaks // Number of HTTP connections per server (default: 6, max 15) network.http.max-persistent-connections-per-server = 10 // DNS cache size (default: 400 entries) network.dnsCacheEntries = 1000 // Disk cache size in KB (default: 256000 = 256MB) browser.cache.disk.capacity = 512000 // Enable hardware acceleration (if disabled for troubleshooting) gfx.direct2d.disabled = false (Windows) layers.acceleration.force-enabled = true (verify your GPU supports this) Privacy / Security // Force prefers-color-scheme: dark (dark mode for all sites) ui.systemUsesDarkTheme = 1 // Disable WebRTC IP leak (important if using VPN) media.peerconnection.ice.default_address_only = true // Disable Pocket integration extensions.pocket.enabled = false // Disable telemetry toolkit.telemetry.unified = false toolkit.telemetry.enabled = false datareporting.healthreport.uploadEnabled = false // Disable Firefox Studies (Shield) app.shield.optoutstudies.enabled = false Tab and Session Behavior // Load previous session tabs lazily (only load when clicked) browser.sessionstore.restore_on_demand = true // How often Firefox saves session data (default: 15000ms = 15s) browser.sessionstore.interval = 15000 // Lower for more frequent saves, higher for less disk I/O // Number of closed tabs Firefox remembers for Ctrl+Shift+T browser.sessionstore.max_tabs_undo = 25 (default: 10) // Number of closed windows Firefox remembers browser.sessionstore.max_windows_undo = 5 Display / UI // Default font size (default: 16, you can set to anything) font.size.variable.x-western = 16 // Minimum font size (prevents sites from using tiny text) font.minimum-size.x-western = 0 (set to 10 or 12 to enforce minimum) // Scroll speed multiplier mousewheel.default.delta_multiplier_y = 100 (increase to scroll faster) // Smooth scrolling general.smoothScroll = true (already default true) Network / Fetch Behavior // Speculative pre-connections (Firefox pre-connects to hovered links) network.http.speculative-parallel-limit = 6 (0 to disable) // Prefetch linked pages network.prefetch-next = true (false to disable) // Send referer header only to same-domain origins network.http.referer.XOriginPolicy = 2 (stricter privacy) // Upgrade insecure requests automatically dom.security.https_only_mode = true (same as HTTPS-only mode UI toggle) about:config for Web Developers Specifically // Enable experimental CSS features (varies by Firefox version) // Check about:config for "layout.css.experimental" to see what's available // Enable Service Worker debugging in private windows dom.serviceWorkers.testing.enabled = false (true to enable testing) // Allow CORS preflight cache (useful for API debugging) // Not typically an about:config setting — handle at server level // Enable Web Sockets in DevTools network panel // Usually enabled by default; check devtools.netmonitor.features.webSockets How to Find Settings Searching in about:config is good for known settings. To discover new ones: 1. The arkenfox user.js project documents hundreds of settings with explanations — good reference even if you don't use it as a config file. 2. Mozilla's wiki has category:Firefox_configuration pages. 3. When debugging a specific behavior, add your suspicion to about:config search. user.js: Persisting Settings Changes in about:config are lost if Firefox resets its profile. For settings you want to persist across Firefox updates: Create user.js in your profile folder (same location as prefs.js) with: user_pref("browser.urlbar.trimURLs", false); user_pref("browser.sessionstore.max_tabs_undo", 25); user_pref("media.peerconnection.ice.default_address_only", true); Firefox reads this file at startup and applies the settings. The file overrides prefs.js, so your preferences survive profile updates. --- The most impactful ones for most developers: browser.sessionstore.restore_on_demand (reduces RAM from session restores), network.http.max-persistent-connections-per-server (slightly faster multi-resource pages), and the privacy settings above.

    1 reaction
  6. Qiita · · @gitmeshi

    arkenfox user.jsの位置づけとFirefox設定強化を検討する視点 業務上の課題 Firefoxをチームや自分用に設定する際、トラッキング対策やフィンガープリンティング対策をどこまで行うかは悩ましい判断です。設定を強化しすぎると表示が崩れたり機能が使えなくなったりする一方、何もしなければ既定のまま多くの情報が外部に渡ってしまいます。この種の判断材料として参照されることがあるのが、arkenfoxが公開しているuser.jsというテンプレートです。 arkenfox user.jsが提供する機能 arkenfoxのuser.jsは、Firefoxの設定を記述したファイルを通じてブラウザの挙動を制御する仕組みを利用したテンプレートです。公式READMEによれば、プライバシーと強化されたセキュリティを可能な限り提供しつつ、トラッキングやフィンガープリンティングを減らすことを目的としており、同時に機能の損失や表示崩れを最小限に抑えることを目指しているとされています。ただし、README自身が明記している通り、設定を適用すれば何らかの不具合や挙動の変化が実際に起こり得るとされています。 公式のwikiには各設定の技術的な解説が掲載されており、READMEでは経験者も含めて全員がwikiを少なくとも読むことを勧めています。また、icpantsparti2氏の協力により、最新リリース内容を確認できる対話形式のウェブページも用意されているとのことです。 READMEでは、FirefoxでTor経由の接続を行うことは推奨されておらず、脅威モデル上Torが必要な場合や隠しサービスへのアクセスが必要な場合はTor Browserの利用を案内しています。また、このuser.jsはデスクトップ版Firefoxを前提に作られているため、他のGeckoベースのブラウザ、特にTor Browserでそのまま使うと逆効果になり得るとも述べられています。 検討すべき場面 こうした情報から考えると、arkenfox user.jsの採用を検討する場面としては、デスクトップ版Firefoxで標準設定よりも踏み込んだプライバシー対策を行いたいが、設定変更に伴う表示崩れや機能制限を受け入れられる、あるいは個別に調整する前提がある場合が想定されます。逆に、Tor経由の匿名性を重視する用途や、デスクトップ以外のGeckoベースブラウザでの利用を想定している場合は、README自体がこのテンプレートの対象外としていることに留意する必要があります。 READMEだけでは断定できない点 公式READMEは全体の位置づけと方針を示すものであり、個々の設定項目がどのように動作し、どの程度の影響を業務や日常利用に与えるかという具体的な内容までは記載されていません。そうした詳細はwikiやリリースノート、changelogなどの別ソースを確認する必要があるとREADMEでも案内されています。また、バージョンごとの差分や、特定のFirefoxバージョンとの組み合わせでの挙動についても、README単体からは判断できません。 出典 本記事は次の公式READMEの内容のみを事実根拠としています。 github.com/arkenfox/user.js/blob/master/README.md 公式READMEをもとに、AIを執筆・推敲支援に使用しています。実機検証の報告ではありません。

Latest stargazers

The last 10 distinct accounts we observed this year.

Most active participants

PR, issue, comment & review events in the past year.

Packages

Scan pending.

README badges

Embed a badge in your README or website.

Live mentions · last 30 days
arkenfox/user.js mentions in the last 30 days