For the complete documentation index, see llms.txt. This page is also available as Markdown.

11.9 Web Browsers

This section describes how to install and configure some mainstream web browsers on a FreeBSD system.

Firefox

Firefox is an open-source browser with features such as standards-compliant HTML rendering engine, tabbed browsing, pop-up window blocking, extension functionality, and enhanced security. Firefox is based on the Mozilla codebase.

Installing the Latest Version of Firefox

  • Install using pkg:

# pkg install firefox
  • Or using Ports:

# cd /usr/ports/www/firefox/
# make install clean
Firefox Browser

Installing Firefox Extended Support Release (ESR)

  • Install using pkg:

  • Or using Ports:

Chromium

Chromium is an open-source browser project that aims to provide a safer, faster, and more stable web browsing experience. Chromium features tabbed browsing, pop-up window blocking, extension support, and more. Chromium is the open-source foundation of the Google Chrome browser.

Chromium differs from Chrome, but in FreeBSD the startup command for Chromium is chrome.

  • Install Chromium using pkg

  • Or install Chromium using Ports

Warning

Compiling Chromium requires at least 8 GB of memory (Release build), or an equivalent sum of swap partition and memory. If LTO optimization is enabled, 16 GB is required; if Debug build is enabled, 32 GB is required. Chromium only supports amd64 and aarch64 architectures.

ungoogled-chromium

Chromium still retains dependencies on Google web services and binaries, so the ungoogled-chromium project removes all Google-related components, including background requests, domain tracking, and precompiled binaries.

  • Install ungoogled-chromium using pkg

  • Or install ungoogled-chromium using Ports

Chrome (Linux Compatibility Layer)

Chrome (Linux Compatibility Layer) runs on FreeBSD's Linuxulator and requires first enabling the Linux binary compatibility layer.

  • Install Chrome using pkg

  • Or install Chrome using Ports

Appendix: Enabling Chromium to Use Google Account Sync

As an open-source project, the relationship between Chromium and Google Chrome is similar to that between AOSP and Pixel UI. Chromium cannot directly download and install extensions from the Google Chrome online extension store; it can only manually install crx files locally (after sync is enabled, browser extensions can be automatically synced). Chromium also does not come with Google Translate extension and other features. For more differences, see: The Chromium Project. Chromium Browser vs Google Chrome[EB/OL]. [2026-03-26]. https://chromium.googlesource.com/chromium/src/+/main/docs/chromium_browser_vs_google_chrome.md. This document compares the differences between Chromium and Google Chrome in terms of functionality and licensing.

Chromium is not Google Chrome; the former is open-source and free software published by The Chromium Project, with its top-level license being the BSD 3-Clause "New" or "Revised" License, and also includes code licensed under LGPL 2.1, MPL 1.1, and others; the latter is proprietary software by Google LLC.

Around the release of Chromium 89, Google restricted access to the private sync API, and distributions consequently removed the default API keys that were previously bundled with Chrome. The announcement explains the reasons and impact of this change.

Before starting to obtain the token, you need to join the following two Google mailing lists:

Join Mailing List

Since only access to the Chrome Google API is needed, you must turn off message notifications for both mailing lists (i.e., "No email"), otherwise you will receive a large number of email notifications.

Disable Email Notifications
Mailing List Settings

After joining the Google browser sign-in test account group, you may see messages such as "You do not have access to this content." This is normal and no cause for concern.

join-mail-list-for-google-api-error2

Open the Google Cloud Console website in your browser.

Note

The Google account used to log in to the console must be the same as the account that joined the mailing lists earlier.

Google Cloud Console Homepage

Click "My First Project" in the top left corner, then select "New Project" in the upper right of the pop-up window.

New Project Option

The project name can be filled in as desired, and the organization should be kept at the default setting.

Fill in Project Information

Click "My First Project" in the top left corner, then select the project just created (here, google-sync) in the pop-up window.

Select Project

Click "APIs & Services" in the image above, then click "+ ENABLE APIS AND SERVICES"

Enable APIs and Services

Search for "chrome-sync" to find the following content.

Search Chrome Sync

Click to enable "Chrome Sync API"

Enable Chrome Sync API

After that, the following status will be displayed in the enabled APIs and services list

Enabled API List

Select "OAuth consent screen":

OAuth Consent Screen

Create an external application:

Create External Application
Fill in Application Information
Application Information Form
Application Details

After creation, as shown:

Application Created

Click "Clients" to create an OAuth client ID, with the application type as "Desktop app":

Create OAuth Client

After creation, as shown:

OAuth Client Created

Click the created "Desktop client 1"

View Client Details

Obtain the following credentials (this is an example; you must generate your own):

  • Client ID 502882456359-okloi0a7k6vjodss69so97tmqmv0jjj5.apps.googleusercontent.com

  • Client Secret GoCSPX-iKHEKZmP4w_zdq0Z8nwOqz6SF2_M

Return to "APIs & Services", click "+ CREATE CREDENTIALS", then click "API Key".

Create API Key

You will then obtain an API key (this is an example; readers must generate their own): AIzaSyDVpYvJQUn9HTjAiD89y3xBDOG3oaxV5_E

API Key Generated

Open the credentials overview:

Credentials Overview

Edit the ~/.profile file and add:

Note

This section has only been tested with the default shell sh and KDE 6. Feedback on configurations in other environments is welcome.

Restart the system, then launch Chromium.

Click "Turn on sync":

Turn on Sync

Enter the account:

Enter Account

Enter the account password:

Enter Password
Login Confirmation

Check the sync status:

Sync Status

References

Troubleshooting and Outstanding Issues

Mitigating Chromium Excessive Disk Cache and GPU Acceleration Issues

Add the parameters to the launch icon (which is essentially a text file):

Note

--disk-cache-size=0 does not disable disk cache, but rather lets Chromium use the default calculated value. To limit the cache size, specify the exact number of bytes (e.g., --disk-cache-size=104857600 for 100 MB). --disable-gpu is used to disable GPU hardware acceleration.

Last updated