The Handbook

    Theme
    • Guides
        • Check a system before installing FreeBSD
        • Orient a Linux administrator on FreeBSD
        • Supported FreeBSD releases
        • Choose a FreeBSD documentation and support channel
        • Move files safely without GNU mv -t
        • Update, upgrade, or update packages?
        • Upgrade 14.4 or 15.0 to FreeBSD 15.1
        • Choose packages, ports, or poudriere
        • Choose the quarterly or latest package branch
        • Choose a FreeBSD download or package mirror
        • Make a system setting persistent
        • Configure locale, keyboard, and time zone
        • Configure a serial console for recovery
        • Choose a custom kernel, module, or loader setting
        • Run a Linux binary with the compatibility layer
        • Check desktop and laptop hardware before installation
        • Choose and check a graphics driver
        • Choose Xorg or Wayland
        • Build a maintainable desktop baseline
        • Install and check a desktop browser
        • Check laptop Wi-Fi, power, and suspend
        • Check multimedia readiness
        • Choose and configure a printing stack
        • Run Windows applications with Wine
        • Snapshot and replicate a ZFS dataset
        • Choose a filesystem and storage layout
        • Operate ZFS without losing the recovery path
        • Restore files from a ZFS snapshot
        • Read ZFS pool health and run a scrub
        • Replace a failed device in a ZFS mirror
        • Replicate a ZFS dataset over SSH
        • Change PF safely on a remote host
        • Configure a narrow WireGuard tunnel
        • Plan a FreeBSD home server
        • Choose a mail server or an outgoing relay
        • Publish a network service safely
        • Choose a jail network model
        • Choose native jails or a jail manager
        • Choose a jail or a bhyve virtual machine
        • Establish a FreeBSD security baseline
        • Choose a MAC policy
        • Audit security-relevant activity
        • Start a DTrace performance investigation
    • Integrations
        • Create a first jail with Bastille
        • Compare jail managers and OCI tooling
        • Publish a Bastille service through PF
        • Mount a ZFS dataset in a Bastille jail
        • Update and upgrade Bastille jails
        • Back up and restore a Bastille jail
        • Prepare bhyve and vm-bhyve
        • Choose NFS or Samba for file sharing
        • Choose ZFS backup automation
        • Operate a signed poudriere repository
        • Manage FreeBSD configuration with Ansible or Salt
        • Run Motion with webcamd on FreeBSD
        • Design a reverse proxy, certificates, and monitoring
    • FAQ
      • Troubleshooting
          • Recover an interrupted freebsd-update run
          • Resolve a package repository or ABI mismatch
          • Diagnose the FreeBSD boot path
          • Recover with a ZFS boot environment
          • Diagnose DNS, routing, and firewall paths
          • Diagnose network mbuf exhaustion
          • Bind a service to a low port without running it as root
          • Diagnose audio output or input
          • Diagnose webcamd, cuse, and a webcam
          • Fix USB device permissions without opening every device
      • About this handbook
      • Synopsis
      • Check the configured package source
      • Choose one initial browser
      • Start it from a terminal first
      • Test capabilities separately
      • Treat protected media as a separate requirement
      • Update the browser through the package policy
      • Primary references

      Install and check a desktop browser

      Last reviewed
      13 August 2026
      Applies to
      15.1-RELEASE, 15.0-RELEASE, 14.4-RELEASE

      Synopsis #

      Firefox, Firefox ESR, and Chromium are available as FreeBSD packages on supported combinations of release, architecture, and package branch. Package availability does not promise that a proprietary media service, meeting platform, extension, hardware-acceleration path, or enterprise authentication method supports FreeBSD.

      Install one browser first and test it from a known-working graphical session. This keeps browser failures separate from desktop startup , audio , and webcam failures. For conferencing, protected playback, and capture requirements, record the complete workload with the multimedia-readiness guide .

      Check the configured package source #

      Inspect the repository policy and search for the exact package names:

      $ pkg repositories
      $ pkg search -x '^(firefox|firefox-esr|chromium)$'
      

      The result can vary by architecture and by the quarterly or latest package branch. Do not change branches only to obtain one browser without reviewing the complete package transaction. Choose a package policy for the whole system.

      Choose one initial browser #

      RequirementInitial packageMaintenance implication
      Current Firefox releasefirefoxReceives the current feature-release line available in the configured repository
      Longer Firefox release cyclefirefox-esrUses Mozilla’s ESR line as packaged by FreeBSD
      Chromium engine required by a sitechromiumAdds a second browser engine and its own update cadence

      Install one selected package:

      # pkg install firefox
      

      Substitute firefox-esr or chromium only when that is the deliberate choice. Installing multiple browsers is reasonable for compatibility testing, but it should not be the first response to a broken graphical session.

      Start it from a terminal first #

      Within the graphical session, inspect its display variables:

      $ echo "$XDG_SESSION_TYPE"
      $ echo "$DISPLAY"
      $ echo "$WAYLAND_DISPLAY"
      

      Then start the selected browser from that terminal:

      $ firefox
      

      Terminal diagnostics often distinguish a missing display, unavailable shared library, profile error, and graphics-backend failure. Preserve that output before changing environment variables or disabling browser features.

      Confirm the installed package and version:

      $ pkg info firefox
      

      Substitute the actual package name. Include this output, the FreeBSD release, display-session type, and graphics package version in a useful bug report.

      Test capabilities separately #

      Use ordinary sites first, then test each required capability:

      1. Page rendering, downloads, and certificate validation.
      2. Audio playback after base-system audio works.
      3. Microphone selection after recording works outside the browser.
      4. Camera selection after /dev/video* exists and a local viewer works.
      5. Screen sharing under the actual Xorg or Wayland session.
      6. Required extensions, hardware keys, corporate authentication, and protected media.

      A browser permission prompt cannot grant operating-system access that the login does not have. Conversely, a readable camera node does not grant a site browser permission. Diagnose the OS device, browser permission, and site permission as separate layers.

      Do not use a meeting provider’s marketing compatibility table as proof that its web application supports FreeBSD. Test the required meeting as a guest before depending on it, and keep a fallback device for time-critical calls.

      Treat protected media as a separate requirement #

      Some streaming services depend on proprietary digital-rights-management components and platform policies. A site that renders correctly may still refuse protected playback. Do not weaken browser security settings or install an unrelated Linux browser stack merely because ordinary video playback works differently.

      Record protected-media support as its own preflight item. Recheck it after browser and service updates because either side can change independently.

      Update the browser through the package policy #

      Browsers process untrusted network content and should not be left outside routine package maintenance:

      # pkg update
      # pkg upgrade
      

      Review the full transaction. Restart the browser after its package or shared libraries change. A running browser process continues using code and libraries from before the upgrade until it exits.

      When a browser update regresses a required feature, save the package versions and diagnostic output. Do not keep an indefinitely vulnerable browser as the permanent workaround.

      Primary references #

      • FreeBSD Handbook: Browsers
      • FreeBSD Ports: Firefox
      • FreeBSD Ports: Firefox ESR
      • FreeBSD Ports: Chromium
      • pkg(8)

      Independent documentation. Not affiliated with or endorsed by the FreeBSD Project or the FreeBSD Foundation.

      Report a bug
      • Synopsis
      • Check the configured package source
      • Choose one initial browser
      • Start it from a terminal first
      • Test capabilities separately
      • Treat protected media as a separate requirement
      • Update the browser through the package policy
      • Primary references