FreeBSD.software
Home/Guides/Firefox on FreeBSD: Web Browser Review
review·2026-04-09·9 min read

Firefox on FreeBSD: Web Browser Review

Review of Firefox on FreeBSD: installation, Wayland vs X11, hardware acceleration, WebRTC, performance comparison with Chromium, and FreeBSD-specific tweaks.

Firefox on FreeBSD: Web Browser Review

Firefox is the default web browser recommendation for FreeBSD. It is open source, actively maintained, available as a binary package, and works well on both X11 and Wayland. Mozilla does not officially support FreeBSD, but the FreeBSD ports maintainers keep the browser current and patch it for platform-specific issues.

This review covers installation, configuration for best performance, Wayland vs X11 differences, hardware acceleration, WebRTC, and an honest comparison with Chromium on FreeBSD.

Installation

sh
# Install Firefox pkg install firefox # Check the installed version firefox --version

The FreeBSD package tracks Firefox ESR (Extended Support Release) by default. If you want the latest release channel:

sh
# Latest release (non-ESR) pkg install firefox # Note: check `pkg search firefox` to see available versions # The main firefox package typically tracks the latest stable release

First Launch

sh
# Launch Firefox firefox &

On first launch, Firefox creates a profile in ~/.mozilla/firefox/. The default configuration works but is not optimized for FreeBSD. The sections below cover the tweaks that matter.

Wayland vs X11

Firefox supports both display protocols on FreeBSD. The choice depends on your compositor.

Running Under Wayland

sh
# Set the environment variable before launching export MOZ_ENABLE_WAYLAND=1 firefox &

To make this permanent, add to ~/.profile or ~/.zprofile:

sh
export MOZ_ENABLE_WAYLAND=1

Benefits of Wayland mode:

  • No screen tearing
  • Proper per-monitor DPI scaling on HiDPI displays
  • Smoother scrolling with compositor integration
  • Better touchpad gesture support

Drawbacks:

  • Screen sharing in video calls is less reliable (PipeWire dependency)
  • Some extensions that interact with window management may behave differently

Running Under X11

Firefox under X11 is the more tested configuration on FreeBSD. No special environment variables are needed.

sh
# Just launch it firefox &

To verify which display protocol Firefox is using, navigate to about:support and check the "Window Protocol" field. It will show "wayland" or "x11".

Hardware Acceleration

Hardware acceleration offloads video decoding and rendering to the GPU, reducing CPU usage and improving battery life on laptops.

GPU Driver Prerequisite

sh
# Ensure drm-kmod is installed and loaded pkg install drm-kmod # For Intel: sysrc kld_list+="i915kms" kldload i915kms # For AMD: sysrc kld_list+="amdgpu" kldload amdgpu

Enabling Hardware Video Decoding

Navigate to about:config in Firefox and set:

shell
media.ffmpeg.vaapi.enabled = true media.hardware-video-decoding.enabled = true media.hardware-video-decoding.force-enabled = true

Install VA-API support:

sh
# For Intel GPUs pkg install libva-intel-driver # Or for newer Intel (Gen 8+): pkg install intel-media-driver # For AMD GPUs pkg install libva-mesa-driver # Verify VA-API works pkg install libva-utils vainfo

Enabling WebRender

WebRender is Firefox's GPU-accelerated rendering engine. It should be enabled by default on supported hardware, but verify:

In about:config:

shell
gfx.webrender.all = true

Check about:support -- under "Compositing", it should say "WebRender".

Verifying Hardware Acceleration

Navigate to about:support and look for:

  • Compositing: Should say "WebRender" (not "Basic")
  • WebGL 1/2 Renderer: Should show your GPU name
  • Hardware Video Decoding: Should show supported codecs

Test with a 4K YouTube video. Check CPU usage:

sh
# In another terminal, watch CPU usage while playing video top -P

If hardware decoding is working, CPU usage for a 4K VP9 video should be under 20% on modern hardware. Without hardware decoding, expect 60-100%.

Performance Tweaks

Memory and Cache

In about:config:

shell
# Increase content process limit (default is 8) dom.ipc.processCount = 8 # Adjust disk cache size (in KB, -1 for automatic) browser.cache.disk.capacity = 1048576 # Disable session restore for faster startup browser.sessionstore.resume_from_crash = false

Network Performance

shell
# Enable HTTP/3 (QUIC) network.http.http3.enable = true # DNS over HTTPS (if desired) network.trr.mode = 2 network.trr.uri = https://mozilla.cloudflare-dns.com/dns-query

Smooth Scrolling

shell
# Fine-tune scrolling behavior general.smoothScroll = true general.smoothScroll.msdPhysics.enabled = true mousewheel.min_line_scroll_amount = 30

Disable Telemetry

Firefox sends telemetry data by default. On FreeBSD, there is no reason to keep this enabled:

shell
# In about:config toolkit.telemetry.enabled = false toolkit.telemetry.unified = false datareporting.healthreport.uploadEnabled = false datareporting.policy.dataSubmissionEnabled = false

Or from the GUI: Settings > Privacy & Security > Firefox Data Collection and Use -- uncheck everything.

WebRTC and Video Calls

WebRTC for video conferencing (Google Meet, Jitsi, etc.) works on FreeBSD with some caveats.

Audio

sh
# FreeBSD uses OSS by default. Firefox expects PulseAudio or PipeWire. # Install PulseAudio: pkg install pulseaudio # Or PipeWire (newer, recommended for Wayland): pkg install pipewire pipewire-pulse # Start PipeWire (add to your compositor's autostart) pipewire & pipewire-pulse &

Camera

USB webcams using the webcamd driver work with Firefox:

sh
# Install webcam support pkg install webcamd sysrc webcamd_enable="YES" service devd restart service webcamd start # Add your user to the webcamd group pw groupmod webcamd -m yourusername

Screen Sharing

Under X11, screen sharing works directly (Firefox can capture the X11 root window).

Under Wayland, screen sharing requires PipeWire and the appropriate xdg-desktop-portal:

sh
# For Sway: pkg install xdg-desktop-portal-wlr # For Hyprland: pkg install xdg-desktop-portal-hyprland # For GNOME: pkg install xdg-desktop-portal-gnome

Screen sharing under Wayland on FreeBSD is functional but less reliable than on Linux. If video calls are critical, consider running Firefox under XWayland.

Profile Management

Firefox profiles allow separate configurations for different use cases:

sh
# List profiles firefox --ProfileManager # Create a new profile from command line firefox -CreateProfile "work" # Launch with a specific profile firefox -P work & # Launch a temporary profile (useful for testing) firefox --profile /tmp/firefox-test --no-remote &

Useful about: Pages

shell
about:config -- All configuration options about:support -- Troubleshooting information (GPU, compositing, etc.) about:memory -- Memory usage breakdown about:networking -- Network connection details about:processes -- Per-tab CPU and memory usage about:performance -- Tab performance metrics

Firefox vs Chromium on FreeBSD

This is the key comparison for FreeBSD web browser choice.

| Aspect | Firefox | Chromium |

|--------|---------|----------|

| Package availability | pkg install firefox | pkg install chromium |

| Update frequency | Regular, well-maintained | Regular, well-maintained |

| Wayland support | Good (MOZ_ENABLE_WAYLAND=1) | Good (--ozone-platform=wayland) |

| Hardware video decoding | VA-API (requires config) | VA-API (requires flags) |

| Sandboxing on FreeBSD | Content process isolation | Limited (no seccomp on FreeBSD) |

| Memory usage (10 tabs) | ~800 MB | ~1.1 GB |

| Memory usage (50 tabs) | ~2.5 GB | ~4 GB |

| JavaScript performance | Competitive (SpiderMonkey) | Slightly faster (V8) |

| Extension ecosystem | Large (WebExtensions) | Large (Chrome Web Store) |

| Privacy defaults | Better (Enhanced Tracking Protection) | Minimal |

| DRM (Netflix, etc.) | Widevine CDM works | Widevine CDM works |

| Developer tools | Excellent | Excellent |

| Open source | Fully | Mostly (minus Google services) |

Choose Firefox if: You care about privacy, lower memory usage, or want a browser backed by a non-profit rather than an advertising company.

Choose Chromium if: You need maximum JavaScript performance, better compatibility with certain web applications that target Chrome, or prefer Chrome DevTools.

For most FreeBSD users, Firefox is the better default choice. It uses less memory, has better privacy defaults, and its sandboxing is not weakened by the FreeBSD platform in the way Chromium's is.

Troubleshooting

Firefox Crashes on Startup

sh
# Launch from terminal to see error output firefox --safe-mode # Reset the profile if needed mv ~/.mozilla/firefox ~/.mozilla/firefox.bak firefox # Creates a new profile

No Sound

sh
# Check if PulseAudio or PipeWire is running pgrep pulseaudio || pgrep pipewire # Test audio pkg install pulseaudio-utils paplay /usr/local/share/sounds/freedesktop/stereo/bell.oga # In about:config, verify: # media.cubeb.backend should be "pulse" or "oss"

High CPU Usage on Video Playback

Hardware acceleration is probably not working. Check:

sh
# Verify VA-API vainfo # Check Firefox compositing in about:support # If "Compositing" shows "Basic", WebRender is not active

Fonts Look Wrong

sh
# Install common fonts pkg install noto dejavu webfonts # Rebuild font cache fc-cache -fv

Firefox Is Slow

sh
# Check if Firefox is swapping top -o res # Sort by resident memory # Reduce content process count if low on RAM # about:config: dom.ipc.processCount = 4 # Disable unused features # about:config: accessibility.force_disabled = 1 # about:config: reader.parse-on-load.enabled = false

A consolidated list of settings optimized for FreeBSD:

shell
# Hardware acceleration gfx.webrender.all = true media.ffmpeg.vaapi.enabled = true media.hardware-video-decoding.enabled = true # Performance dom.ipc.processCount = 8 network.http.http3.enable = true # Privacy toolkit.telemetry.enabled = false datareporting.healthreport.uploadEnabled = false privacy.trackingprotection.enabled = true # Wayland (if using Wayland) widget.use-xdg-desktop-portal.file-picker = 1

FAQ

Is Firefox the best browser for FreeBSD?

For most users, yes. Firefox is well-maintained on FreeBSD, uses less memory than Chromium, has better privacy defaults, and does not suffer from the sandboxing limitations that affect Chromium on FreeBSD.

Does Netflix work in Firefox on FreeBSD?

Yes. Widevine CDM (Content Decryption Module) works on FreeBSD. DRM-protected content on Netflix, Disney+, and other streaming services plays correctly. Enable DRM in Firefox settings under General > Digital Rights Management (DRM) Content.

How do I enable Wayland support in Firefox?

Set the environment variable MOZ_ENABLE_WAYLAND=1 before launching Firefox. Add it to your ~/.profile to make it permanent. Verify by checking about:support -- the "Window Protocol" field should show "wayland".

Why is Firefox using so much CPU?

Check if hardware video decoding is enabled (see the hardware acceleration section above). Without VA-API, video playback is software-decoded and uses significant CPU. Also check for misbehaving web pages using about:processes.

Can I use Firefox ESR on FreeBSD?

Yes. The FreeBSD package repository typically provides both Firefox (latest release) and Firefox ESR. ESR receives security updates for about a year before requiring a major version jump.

How do I sync Firefox settings across devices?

Firefox Sync works identically on FreeBSD as on any other platform. Sign in with your Firefox Account in Settings > Sync. Bookmarks, history, passwords, and open tabs sync across all your devices.

Does WebGL work on FreeBSD?

Yes, with working GPU drivers (drm-kmod). Check about:support for the "WebGL 1 Driver" and "WebGL 2 Driver" fields. If they show your GPU name, WebGL is working.

Get more FreeBSD guides

Weekly tutorials, security advisories, and package updates. No spam.