Firefox
Firefox is a popular open source graphical web browser from Mozilla.
Installing
Firefox can be installed with the firefox package.
Other alternatives include:
- Firefox Developer Edition — for developers
- Firefox Extended Support Release — long-term supported version
- Firefox Beta — cutting-edge version
- Firefox Nightly — nightly builds for testing (experimental features)
- Firefox KDE — Version of Firefox that incorporates an OpenSUSE patch for better KDE integration than is possible through simple Firefox plugins.
- On top of the different Mozilla build channels, a number of forks exist with more or less special features; see List of applications#Gecko-based.
A number of language packs are available for Firefox, other than the standard English. Language packs are usually named as firefox-i18n-languagecode
(where languagecode
can be any language code, such as de, ja, fr, etc.). For a list of available language packs see firefox-i18n for firefox, firefox-developer-edition-i18n for firefox-developer-edition and firefox-nightly- for firefox-nightlyAUR.
intl.locale.requested
in about:config
[1].Add-ons
Firefox is well known for its large library of add-ons which can be used to add new features or modify the behavior of existing features. Firefox's "Add-ons Manager" is used to manage installed add-ons or find new ones.
For instructions on how to install add-ons and a list of add-ons, see Browser extensions.
Adding search engines
Search engines may be added to Firefox by creating bookmarks with the Location
field using search URLs completed with %s in place of the query and the Keyword
field completed with user-defined characters:
Location: https://duckduckgo.com/html/?q=%s Keyword: d
Searches are performed by pre-pending the search term with the keyword of the specified search engine: d archwiki
will query DuckDuckGo using the search term archwiki
Search engines may also be added to Firefox through add-on extensions, see this page for a list of available search tools and engines.
A very extensive list of search engines can be found at the Mycroft Project.
Also, you can use the add-to-searchbar extension to add a search to your search bar from any web site, by simply right clicking on the site's search field and selecting Add to Search Bar...
firefox-extension-arch-search
Install the firefox-extension-arch-searchAUR package to add Arch-specific searches (AUR, wiki, forum, packages, etc) to the Firefox search toolbar.
Plugins
Support for all plugins, including Flash Player, was removed in Firefox 85.[2][3]
Configuration
Firefox exposes a number of configuration options. To examine them, enter in the Firefox address bar:
about:config
Once set, these affect the user's current profile, and may be synchronized across all devices via Firefox Sync. Please note that only a subset of the about:config
entries are synchronized by this method, and the exact subset may be found by searching for services.sync.prefs
in about:config
. Additional preferences and third party preferences may be synchronized by creating new boolean entries prepending the config value with services.sync.prefs.sync. To synchronize the whitelist for the extension NoScript:
services.sync.prefs.sync.capability.policy.maonoscript.sites
The boolean noscript.sync.enabled
must be set to true
to synchronize the remainder of NoScript's preferences via Firefox Sync.
Settings storage
Firefox stores the configuration for a profile via a prefs.js
in the profile folder, usually ~/.mozilla/firefox/xxxxxxxx.default/
.
Firefox also allows configuration for a profile via a user.js
file: user.js kept also in the profile folder. A user.js
configuration supersedes a prefs.js
. For a useful starting point, see e.g custom user.js which is targeted at privacy/security conscious users.
One drawback of the above approach is that it is not applied system-wide. Furthermore, this is not useful as a "pre-configuration", since the profile directory is created after first launch of the browser. You can, however, let firefox create a new profile and, after closing it again, copy the contents of an already created profile folder into it.
Sometimes it may be desired to lock certain settings, a feature useful in widespread deployments of customized Firefox. In order to create a system-wide configuration, follow the steps outlined in Locking preferences:
1. Create /usr/lib/firefox/defaults/pref/local-settings.js
:
pref("general.config.obscure_value", 0); pref("general.config.filename", "mozilla.cfg");
2. Create /usr/lib/firefox/mozilla.cfg
(this stores the actual configuration):
// //...your settings... // e.g to disable Pocket, uncomment the following lines // lockPref("extensions.pocket.enabled", false); // lockPref("browser.newtabpage.activity-stream.feeds.section.topstories", false);
Please note that the first line must contain exactly //
. The syntax of the file is similar to that of user.js
.
Multimedia playback
Firefox uses FFmpeg for playing multimedia inside HTML5 <audio>
and <video>
elements. Go to video-test page or audio-test page to check which formats are actually supported.
Firefox uses PulseAudio for audio playback and capture. If PulseAudio is not installed, Firefox uses alsa instead.
HTML5 DRM/Widevine
Widevine is a digital rights management tool that Netflix, Amazon Prime Video, and others use to protect their video content. It can be enabled in Preferences > General > Digital Rights Management (DRM) Content. If you visit a Widevine-enabled page when this setting is disabled, Firefox will display a prompt below the address bar asking for permission to install DRM. Approve this and then wait for the "Downloading" bar to disappear, you are now able to watch videos from Widevine protected sites.
Firefox can only play 720p video (or lower) with Widevine, due to not using hardware DRM playback. It is also required that the private mode browsing is disabled, for the window and in the preferences.
Open With extension
- Install Open With add-on.
- Go to Add-ons > Open With > Preferences.
- Proceed with instructions to install a file in your system and test the installation.
- Click Add browser.
- In the dialog write a name for this menu entry and command to start a video streaming capable player (e.g. /usr/bin/mpv).
- (Optional step) Add needed arguments to the player (e.g. you may want
--force-window --ytdl
for mpv) - Right click on links or visit pages containing videos. Select newly created entry from Open With's menu and if the site is supported, the player will open as expected.
The same procedure can be used to associate video downloaders such as youtube-dl.
Hardware video acceleration
Hardware video acceleration via VA-API is available under Wayland [4] and Xorg [5] [6].
To enable VA-API in Firefox:
- Ensure that your video card is correctly configured for VA-API:
- See Hardware video acceleration for steps to verify and install VA-API drivers if required.
- Ensure WebRender is enabled.
- Verify WebRender is enabled by opening
about:support
and thenCompositing
. It is enabled by default in GNOME and other desktop environments [7].- Ensure you are not running Software WebRender as that will not work as of August 2021 [8]. If necessary WebRender can be force enabled as explained in /Tweaks#Enable WebRender compositor.
- Verify WebRender is enabled by opening
- Set the following flags in
about:config
:-
Important: on Firefox 96 only setting
media.ffmpeg.vaapi.enabled
andmedia.rdd-ffmpeg.enabled
to true should be necessary. Many below preferences no longer need to be set since the RDD sandbox was mostly fixed. However, some issues still remain [9]. -
media.ffmpeg.vaapi.enabled
totrue
in order to enable the use of VA-API with FFmpeg. -
media.ffvpx.enabled
tofalse
to disable the internal decoders for VP8/VP9. This is necessary despite this bug being fixed [10][11]. -
media.navigator.mediadatadecoder_vpx_enabled
totrue
to enable hardware VA-API decoding for WebRTC [12]. -
media.rdd-vpx.enabled
tofalse
to disable the remote data decoder process for VP8/VP9. Firefox attempts to use the RDD process for VP8/VP9 but the RDD sandbox blocks VA-API access [13]. Disabling the remote data decoder for VP8/VP9 process means VA-API will run in the content process instead. In Firefox 96 mostly working support for running VA-API in the RDD process was added.- Another possible workaround is to completely disable the RDD process by setting
media.rdd-process.enabled
tofalse
, instead of just disabling it for VP8/VP9 as above.
- Another possible workaround is to completely disable the RDD process by setting
- On Intel, in some cases VA-API might not work with the Intel iHD driver intel-media-driver. This might be workaroundable by using the Intel i965 driver libva-intel-driver. This workaround does not work anymore with Intel Iris Xe graphics, which are only supported by intel-media-driver. Luckily Firefox 96 introduced better support for the RDD Process, which should help with intel-media-driver. [14] [15] [16].
- As a last resort, the content process sandbox can be disabled. However, this is a serious security risk and disables protection against attackers. It is recommended to leave the sandbox settings as default [17]. Nevertheless, to disable the content sandbox set
security.sandbox.content.level
to0
[18].
- As a last resort, the content process sandbox can be disabled. However, this is a serious security risk and disables protection against attackers. It is recommended to leave the sandbox settings as default [17]. Nevertheless, to disable the content sandbox set
-
Important: on Firefox 96 only setting
- Run Firefox with the following environment variable enabled:
- As well as following Hardware video acceleration#Verification, one can confirm VA-API usage by checking Firefox VA-API logs. Run Firefox with the
MOZ_LOG="PlatformDecoderModule:5"
environment variable and check in the log output that VA-API is enabled and used (search for the "VA-API" string) when playing a video for example. Pay attention to these logs as they might indicate that only one of the two possible compositors described before (WebRender or OpenGL) works with VA-API on your particular setup. - To allow hardware decoding in YouTube, the video codec used must be supported by the hardware. The profiles supported by your GPU can be checked with Hardware video acceleration#Verifying VA-API and the YouTube codecs used can sometimes (if offered by YouTube!) be controlled with the h264ify or enhanced-h264ify extensions. Alternatively, you can install firefox-h264ifyAUR.
- NVIDIA's proprietary driver potentially has support for DMA-BUF in the 470 drivers [20][21]. DMA-BUF is necessary for hardware video acceleration in Firefox [22]. If DMA-BUF support is present libva-vdpau-driver will be necessary as Firefox does not natively support VDPAU.
- Currently Firefox's VA-API implementation can decode H.264/AVC, VP8 & VP9 encoded video. AV1 support may be added in the future [23].
- Multi-GPU systems should automatically choose a suitable GPU for VA-API according to this solved issue.
- Some videos (e.g. YouTube VR) may show a black image after setting
media.ffvpx.enabled
tofalse
[24]. - To workaround VA-API not working correctly in the RDD process, the RDD process sandbox can be disabled instead of moving VA-API to the content process as suggested above. This is not recommended since disabling the sandbox is a large security risk and disables protection against attackers. Set the environment variable
MOZ_DISABLE_RDD_SANDBOX=1
to disable RDD sandbox. -
AMDGPU users under linux-hardened may need to rebuild linux-hardened with
CONFIG_CHECKPOINT_RESTORE=y
due to mesa requiring the kcmp syscall. This may no longer be necessary due to this bug being solved. - While WebRender is default now (either software or hardware), Gecko's legacy OpenGL backend still exists. There might be cases where the legacy backend is useful as explained in /Tweaks#Enable Legacy OpenGL compositor.
Spell checking
Firefox can use system-wide installed Hunspell dictionaries as well as dictionaries installed through its own extension system.
To enable spell checking for a specific language right click on any text field and check the Check Spelling box. To select a language for spell checking to you have right click again and select your language from the Languages sub-menu.
When your default language choice does not stick, see #Firefox does not remember default spell check language.
System-wide Hunspell dictionaries
Install Hunspell and its dictionaries for the languages you require.
Dictionaries as extensions
To get more languages right click on any text field and just click Add Dictionaries... and select the dictionary you want to install from the Dictionaries and Language Packs list.
KDE integration
- To bring the KDE look to GTK apps (including Firefox), install breeze-gtk and kde-gtk-config. Afterwards, go to System Settings and in Appearance > Application Style > Configure GNOME/GTK Application Style… choose 'Breeze'.
- To use the KDE file selection and print dialogs in Firefox 64 or newer, install xdg-desktop-portal and xdg-desktop-portal-kde, then do one of the following:
- Set
widget.use-xdg-desktop-portal
totrue
inabout:config
. - Launch firefox with
GTK_USE_PORTAL=1
environment variable.
- Set
- Note: Using
GTK_USE_PORTAL=1
or settingwidget.use-xdg-desktop-portal
totrue
will result in Firefox asking to set default browser every time Firefox starts.
- For integration with KDE MIME type system, proxy and file dialog, one can use firefox-kde-opensuseAUR variant from AUR with OpenSUSE’s patches applied. Alternatively, integration with MIME types can be achieved by creating a symbolic link to the MIME database
~/.config/mimeapps.list
from the deprecated~/.local/share/applications/mimeapps.list
that is used by Firefox. See XDG MIME Applications#mimeapps.list. - Extensions/add-ons may provide additional integration, such as:
- Browser integration in Plasma: requires plasma-browser-integration and the Plasma Integration add-on.
- Tip: To prevent duplicate entries in the Media Player widget or tray icon, set
media.hardwaremediakeys.enabled
tofalse
. This disables the media entry from Firefox and only uses the one from the Plasma integration add-on.
Tips and tricks
For general enhancements see Firefox/Tweaks, for privacy related enhancements see Firefox/Privacy.
Dark themes
If a dark GTK theme is in use (e.g. Arc Dark), it is recommended to start Firefox with a brighter one (e.g. Adwaita). See GTK#Themes and Firefox/Tweaks#Unreadable input fields with dark GTK themes for more information.
Alternatively, starting with Firefox 68 you can make all the Firefox interfaces and even other websites respect dark themes, irrespective of the system GTK theme and Firefox theme. To do this, set ui.systemUsesDarkTheme
to 1
in about:config
[25].
Frame rate
If Firefox is unable to automatically detect the right value, it will default to 60 fps. To manually correct this, set layout.frame_rate
to the refresh rate of your monitor (e.g. 144 for 144 Hz).
Memory limit
To prevent pages from abusing memory (and possible OOM), we can use Firejail with the rlimit-as
option.
New tabs position
To control where new tabs appears (relative or absolute), use browser.tabs.insertAfterCurrent
and browser.tabs.insertRelatedAfterCurrent
. See [26] for more information.
Screenshot of webpage
You can Take a Screenshot by either clicking the Page actions button (the three horizontal dots) in the address bar or by right-clicking on the webpage. See [27] for more information.
As an alternative you can use the screenshot button in the Developer Tools.
Wayland
More recent versions of Firefox support opting into Wayland mode via an environment variable.
$ MOZ_ENABLE_WAYLAND=1 firefox
To make this permanent, see Environment variables#Graphical environment and start Firefox via the desktop launcher like you normally would.
To verify it worked, look for Window Protocol
in about:support
. It should say wayland
. The presence of x11
means you are running Firefox under Xorg display server, while xwayland
means your system is running Wayland but executing Firefox as legacy X11 application.
On native Wayland, Firefox rendering performance can be significantly improved by setting gfx.webrender.compositor.force-enabled
to true
in about:config
. As of Firefox 89, this feature is experimental and Firefox Nightly is recommended for testing.
All rendering is allowed to occur in native compositor surfaces, resulting in more efficient rendering, improving performance and battery life [28]. Ensure /Tweaks#Enable WebRender compositor is also enabled and working. GNOME 40.1/3.38.5 or KDE 5.22 or later are considered testable compositors [29].
Window manager rules
To apply different configurations to Firefox windows, change the WM_CLASS string by using Firefox's --class
option, to a custom one.
Profiles
To start new Firefox instances, multiple profiles are required. To create a new profile:
$ firefox [--new-instance] -P
Class can be specified when launching Firefox with a not-in-use profile:
$ firefox [--new-instance] -P profile_name --class=class_name
Touchscreen gestures and pixel-perfect trackpad scrolling
To enable touch gestures (like scrolling and pinch-to-zoom) and one-to-one trackpad scrolling (as can be witnessed with GTK3 applications like Nautilus), set the MOZ_USE_XINPUT2=1
environment variable before starting Firefox.
Multiple home pages
To have multiple tabs opened when starting Firefox open a new window and then open the sites you want to have as "home tabs".
Now go to Preferences > Home and under Homepage and new windows click the Use Current Pages button.
Alternatively go directly to Preferences > Home and now under Homepage and new windows set the first field to Custom URLs.. and enter the pages you want as new home pages in the following format:
https://url1.com|https://url2.com|https://url3.com
Troubleshooting
Safe Mode
The command line switch --safe-mode
starts Firefox in Safe Mode, which disables extensions, themes and some other features for this session.
Disable hardware video acceleration
To force disable hardware video acceleration in Firefox, e.g. in case of freezes, start Firefox in Safe Mode or set layers.acceleration.disabled
to true
in about:config
.
Extension X does not work on some Mozilla owned domains
By default extensions will not affect pages designated by extensions.webextensions.restrictedDomains
. If this is not desired, this field can be cleared (special pages such as about:*
will not be affected).
Firefox startup takes very long
If Firefox takes much longer to start up than other browsers, it may be due to lacking configuration of the localhost in /etc/hosts
. See Network configuration#Local network hostname resolution on how to set it up.
Font troubleshooting
See Font configuration.
Firefox has a setting which determines how many replacements it will allow from Fontconfig. To allow it to use all your replacement rules, change gfx.font_rendering.fontconfig.max_generic_substitutions
to 127
(the highest possible value).
Firefox ships with the Twemoji Mozilla font. To use the system emoji font, set font.name-list.emoji
to emoji
in about:config
. Additionally, to prevent the Mozilla font interfering with your system emoji font, change gfx.font_rendering.opentype_svg.enabled
to false
or remove /usr/lib/firefox/fonts/TwemojiMozilla.ttf
(see also pacman#Skip files from being installed to system).
Setting an email client
Inside the browser, mailto
links by default are opened by a web application such as Gmail or Yahoo Mail. To set an external email program, go to Preferences > Applications and modify the action corresponding to the mailto
content type; the file path will need to be designated (e.g. /usr/bin/kmail
for Kmail).
Outside the browser, mailto
links are handled by the x-scheme-handler/mailto
mime type, which can be easily configured with xdg-mime. See Default applications for details and alternatives.
File association
See Default applications.
Firefox keeps creating ~/Desktop even when this is not desired
Firefox uses ~/Desktop
as the default place for download and upload files. To change it to another folder, set the XDG_DESKTOP_DIR
option as explained in XDG user directories.
Make plugins respect blocked pop-ups
Some plugins can misbehave and bypass the default settings, such as the Flash plugin. You can prevent this by doing the following:
- Type
about:config
into the address bar. - Right-click on the page and select New > Integer.
- Name it
privacy.popups.disable_from_plugins
. - Set the value to
2
.
The possible values are:
-
0
: Allow all popups from plugins. -
1
: Allow popups, but limit them todom.popup_maximum
. -
2
: Block popups from plugins. -
3
: Block popups from plugins, even on whitelisted sites.
Changes to userChrome.css and userContent.css are ignored
Set toolkit.legacyUserProfileCustomizations.stylesheets
to true
in about:config
Middle-click behavior
To use the middle mouse button to paste whatever text has been highlighted/added to the clipboard, as is common in UNIX-like operating systems, set either middlemouse.contentLoadURL
or middlemouse.paste
to true
in about:config
. Having middlemouse.contentLoadURL
enabled was the default behaviour prior to Firefox 57.
To scroll on middle-click (default for Windows browsers) set general.autoScroll
to true
.
Backspace does not work as the 'Back' button
According to MozillaZine, the Backspace
key was mapped based on which platform the browser was running on. As a compromise, this preference was created to allow the Backspace
key to either go back/forward, scroll up/down a page, or do nothing.
To make Backspace
go back one page in the tab's history and Shift+Backspace
go forward, set browser.backspace_action
to 0
in about:config
.
To have the Backspace
key scroll up one page and Shift+Backspace
scroll down one page, set browser.backspace_action
to 1
. Setting this property to any other value will leave the key unmapped (Arch Linux defaults to 2
, in other words, it is unmapped by default).
Firefox does not remember login information
It may be due to a corrupted cookies.sqlite
file in Firefox's profile folder. In order to fix this, just rename or remove cookie.sqlite
while Firefox is not running.
Open a terminal of choice and type the following:
$ rm -f ~/.mozilla/firefox/<profile id>.default/cookies.sqlite
The profile id is a random 8 character string.
Restart Firefox and see if it solved the problem.
If it did not work, check if there exists a cookies.sqlite.bak
file that you could use to manually restore the cookies.
Cannot enter/leave fullscreen
If Firefox detects an EWMH/ICCCM compliant window manager, it will try to send a WM_STATE message to the root window to request Firefox be made to enter (or leave) full-screen mode (as defined by the window manager). Window managers are allowed to ignore it, but if they do, Firefox will assume the request got denied and propagate it to the end user which results in nothing happening. This may result in not being able to full screen a video. A general workaround is to set the full-screen-api.ignore-widgets
to true
in about:config
.
Related bug reports: Bugzilla 1189622.
Firefox detects the wrong version of my plugin
When you close Firefox, the latter saves the current timestamp and version of your plugins inside pluginreg.dat
located in your profile folder, typically in ~/.mozilla/firefox/xxxxxxxx.default/
.
If you upgraded your plugin when Firefox was still running, you will thus have the wrong information inside that file. The next time you will restart Firefox you will get that message Firefox has prevented the outdated plugin "XXXX" from running on ...
when you will be trying to open content dedicated to that plugin on the web. This problem often appears with the official Adobe Flash Player plugin which has been upgraded while Firefox was still running.
The solution is to remove the file pluginreg.dat
from your profile and that is it. Firefox will not complain about the missing file as it will be recreated the next time Firefox will be closed. [30]
You can try setting dom.w3c_touch_events.enabled
to 0
in about:config
.
Firefox does not remember default spell check language
The default spell checking language can be set as follows:
- Type
about:config
in the address bar. - Set
spellchecker.dictionary
to your language of choice, for instanceen_GB
. - Notice that the for dictionaries installed as a Firefox plugin the notation is
en-GB
, and for hunspell dictionaries the notation isen_GB
.
When you only have system wide dictionaries installed with hunspell, Firefox might not remember your default dictionary language settings. This can be fixed by having at least one dictionary installed as a Firefox plugin. Notice that now you will also have a tab Dictionaries in Add-ons. You may have to change the order of preferred language for displaying pages in about:preferences#general
to make the spell check default to the language of the addon dictionary.
Related questions on the StackExchange platform: [31], [32], [33]
Related bug reports: Bugzilla 776028, Ubuntu bug 1026869
Some MathML symbols are missing
You need some Math fonts, namely Latin Modern Math and STIX (see this MDN page: [34]), to display MathML correctly.
In Arch Linux, these fonts are provided by texlive-core and texlive-fontsextra, but they are not available to fontconfig by default. See TeX Live#Making fonts available to Fontconfig for details. You can also try other Math fonts. In case you encounter this bug [35] installing otf-latinmodern-math can help.
Tearing video in fullscreen mode
If you are using the Xorg Intel or Nouveau drivers and experience tearing video in fullscreen mode, try Firefox/Tweaks#Enable Legacy OpenGL compositor.
Tearing when scrolling
Try disabling smooth scrolling in Preferences > Browsing.
Firefox WebRTC module cannot detect a microphone
WebRTC applications for instance Firefox WebRTC getUserMedia test page say that microphone cannot be found. Issue is reproducible for both ALSA or PulseAudio setup. Firefox debug logs show the following error:
$ NSPR_LOG_MODULES=MediaManager:5,GetUserMedia:5 firefox
... [Unnamed thread 0x7fd7c0654340]: D/GetUserMedia VoEHardware:GetRecordingDeviceName: Failed 1
You can try setting media.navigator.audio.full_duplex
property to false
at about:config
Firefox page and restart Firefox.
This can also help if you are using the PulseAudio module-echo-cancel and Firefox does not recognise the virtual echo canceling source.
Cannot login with my Chinese account
Firefox provides a local service for Chinese users, with a local account totally different from the international one. Firefox installed with the firefox package uses the international account system by default, to change into the Chinese local service, you should install the add-on manager on this page, then you can login with your Chinese account now.
No audio on certain videos when using JACK and PulseAudio
If you are using JACK in combination with PulseAudio and cannot hear any sound on some videos it could be because those videos have mono audio. This happens if your JACK setup uses more than just stereo, but you use normal headphones. To fix this you simply have to connect the front-center
port from the PulseAudio JACK Sink to both playback_1
and playback_2
ports of the system output.
You can also do this automatically using a script:
jack-mono.sh
#!/bin/sh jack_connect "PulseAudio JACK Sink:front-center" "system:playback_1" jack_connect "PulseAudio JACK Sink:front-center" "system:playback_2"
Keep in mind that the names for the sink and the ports might be different for you. You can check what your JACK setup looks like with a Patchbay like Catia from cadence.
Geolocation does not work
Recently, Google limited the use of its location service with Arch Linux, which causes the following error when geolocation is enabled on a website: Geolocation error: Unknown error acquiring position
. Region-locked services such as Hulu may display a similar error indicating that your location could not be determined even though you have allowed location services for the site.
To avoid these problems, you can switch to use the Mozilla Location Service. In about:config
change the geo.provider.network.url
setting to:
https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%
See FS#65241 for more details.
Right mouse button instantly clicks the first option in window managers
This problem has been observed in i3, bspwm and xmonad.
To fix it, navigate to about:config
and change ui.context_menus.after_mouseup
to true
.
See [36]
Applications on Wayland can not launch Firefox
Some applications running in XWayland mode try to launch the X11 edition of Firefox. If the browser already runs in Wayland native mode, the user will receive the error Firefox is already running, but is not responding. To use Firefox, you must first close the existing Firefox process, restart your device, or use a different profile.
while Firefox itself is fully operational.
This can be worked around by setting the environment variable MOZ_DBUS_REMOTE=1
.
Firefox window does not repaint after disabling or enabling compositing
Unset the environment variable MOZ_X11_EGL
.
Related bug report: Bugzilla 1711039.
Firefox continuously asks to be set as default browser upon launch
There are a couple things you can try: if you are using a desktop environment, check if Firefox is set as the default browser in your system settings. If it is not, then set it, otherwise you can run the following xdg-settings(1) command, provided by the xdg-utils package, to query which browser is set as default on your system:
$ xdg-settings get default-web-browser
If no value is returned or it is not Firefox, then run this command to set it:
$ xdg-settings set default-web-browser firefox.desktop
If Firefox still asks to be set as the default browser, then it may be quieted if it is set to handle http and https URL schemes. To do so, run these xdg-mime(1) commands:
$ xdg-mime default firefox.desktop x-scheme-handler/http $ xdg-mime default firefox.desktop x-scheme-handler/https
If those do not work either, check if you have set the environment variable GTK_USE_PORTAL
(all values trigger the bug), in which case, unset it. Related bug report: Bugzilla 1516290. If that does not work or you did not set it, navigate Firefox to about:config
, check if the variable widget.use-xdg-desktop-portal
is set to true
and, if so, set it to false
.
If you wish to disable default browser check entirely, navigate Firefox to about:config
and set browser.shell.checkDefaultBrowser
to false
.
Video stuttering
If you experience video stuttering and you notice that Firefox is only hitting one core at 100% when watching videos (especially higher resolution videos), this might help you.
Go into about:config
and search for dom.ipc.processCount
and change dom.ipc.processCount.file
from 1 to a higher number. An ad hoc method to find a good number is to increase it one at a time until you get good results, but 4 seems to be a good value.