From Fedora Project Wiki

 
(30 intermediate revisions by 2 users not shown)
Line 9: Line 9:
Open terminal and run this command:
Open terminal and run this command:


  '''rpm -qV firefox'''
  rpm -qV firefox


If Firefox installation is correct you don't get any output. If there's something printed please re-install Firefox by rpm/dnf on terminal as:
If Firefox installation is correct you don't get any output. If there's something printed please re-install Firefox by rpm/dnf on terminal as:


  '''sudo dnf remove firefox'''<br>
  sudo dnf remove firefox
  '''sudo dnf install firefox'''
  sudo dnf install firefox


== Run in safe mode ==
== Run in safe mode ==
Line 22: Line 22:
* Make sure no Firefox instance is running. This terminal command:
* Make sure no Firefox instance is running. This terminal command:


  '''pidof firefox'''
  pidof firefox


should not print any output as it reports PID of running Firefox instances. If you see any running instances please reboot your computer (or use kill/killall command).
should not print any output as it reports PID of running Firefox instances. If you see any running instances please reboot your computer (or use kill/killall command).
Line 28: Line 28:
* Launch Firefox in safe mode
* Launch Firefox in safe mode


  '''firefox --safe-mode'''
  firefox --safe-mode


== Test Firefox with a new profile ==
== Test Firefox with a new profile ==
Line 60: Line 60:
Many problems with loading web pages can be resolved by clearing Firefox's cookies and cache. If the new profile helps you, you can try to clear your existing old profile:
Many problems with loading web pages can be resolved by clearing Firefox's cookies and cache. If the new profile helps you, you can try to clear your existing old profile:


# Click on the Tools menu and select Clear Recent History... to bring up the Clear Recent History window
# Click on the sandwich menu button, select ''History'', then select ''Clear Recent History...'' to bring up the Clear Recent History window
# In the Time range to clear drop-down menu, select Everything
# In the Time range to clear drop-down menu, select Everything
# Click the arrow next to Details to display the list of items to clear, then select the following items:
# Click the arrow next to Details to display the list of items to clear, then select the following items:
Line 67: Line 67:
# Click Clear Now.
# Click Clear Now.
# Exit your browser
# Exit your browser
# Clear Flash cookies
#* '''find ~/.macromedia/ -type f -name \*.sol -exec rm '{}' \;'''


For more information, see Clear Recent History. [http://support.mozilla.com/en-US/kb/Clear+Recent+History]
For more information, see Clear Recent History. [https://support.mozilla.com/en-US/kb/Clear+Recent+History]


== Troubleshoot Add-ons / plugins ==
== Troubleshoot Add-ons / plugins ==
Line 81: Line 79:
# Test for your problem.  
# Test for your problem.  


== Check WebRender ==
== Firefox performance issues ==


WebRender is Firefox hardware accelerated back end which uses OpenGL. It's enabled by default on Gnome/X.org and Gnome/Wayland for Intel/AMD graphics cards. You can try to switch it on/off to check if that solves your issues.
There are two sources of possible performance issues - opened site/addon or Firefox itself. To identify hungry site/addon go to  


[[File:Webrender-about.png|thumb|center|WebRedner Firefox setup]]
about:performance
 
page and check for component which uses most of resources.
 
Firefox internal performance issues can be investigated by Firefox Profiler, go to
 
https://profiler.firefox.com/


# Go to '''about:support''' page and check '''Compositing''' field. It's '''Basic''' for software rendering and '''WebRender''' otherwise.
site and enable Firefox profiling. Please share and attach the profile to bugreport (you can also anonymize it).
# To '''enable''' WebRender, go to '''about:config''' page and look for '''gfx.webrender.all''' and '''gfx.webrender.enabled''' preferences and set them to '''true'''.
# To '''disable''' WebRender, go to '''about:config''' page and look for '''gfx.webrender.force-disabled''' preference and set it to '''true'''.
# Restart browser, check at '''about:support''' for WebRender status.


Alternatively you can also use evn variable to control WebRender.
== Check WebRender state (Hardware acceleration) ==


To '''disable''' WebRedner run on terminal:
WebRender is Firefox hardware accelerated back end which uses OpenGL. It's enabled by default on Gnome/X.org and Gnome/Wayland for Intel/AMD graphics cards. You can try to switch WebRender to software backend to check if that solves your issues.


'''MOZ_WEBRENDER=0 firefox'''
[[File:Webrender-about.png|thumb|center|WebRedner Firefox setup]]


To '''enable''' WebRedner run on terminal:
# Go to '''about:support''' page and check '''Compositing''' field. It's '''WebRender''' for hardware/OpenGL rendering and '''WebRender (Software)''' for software one.
# To '''disable''' WebRender hardware backend, go to '''about:config''' page and look for '''gfx.webrender.software''' preference and set it to '''true'''.
# Restart browser, check at '''about:support''' for WebRender status.


'''MOZ_WEBRENDER=1 firefox'''
== Check Firefox X11 backend ==


== Check Firefox X11 Gtk+ backend ==
Firefox can run with two independent Gtk+ backends / graphics servers while Wayland is a default one on some distros (Fedora, Ubuntu 20.04+). You can try to switch back to X11 to check if that helps.


Firefox can run with two independent Gtk+ backends / graphics servers where Wayland is a default one on Gnome Shell. If you run Gnome, please try to reproduced your issue on Firefox X11 backend.
On Fedora:


# install firefox-x11 package
# install firefox-x11 package
# close all active firefox instances
# close all active firefox instances
# run '''Firefox on X11''' from menu or '''firefox-x11''' in Terminal
# run '''Firefox on X11''' from menu or '''firefox-x11''' in Terminal
# go to '''about:support''' page, look for '''Window Protocol''' field. You should have '''x11''' there.
On other distros:
# close all active firefox instances
# open terminal
# run '''MOZ_ENABLE_WAYLAND=0 firefox'''
# go to '''about:support''' page, look for '''Window Protocol''' field. You should have '''x11''' there.
== Check Firefox X11 GLX/EGL backend ==
Firefox can run with two independent OpenGL backends - EGL and GLX (details available [https://mastransky.wordpress.com/2021/10/30/firefox-94-comes-with-egl-on-x11/ here]). EGL becomes default in Firefox 94 but you can switch back to GLX in case of issues.
# Go to '''about:support''' page and check '''WebGL 1 Driver''' field. If it contains '''EGL_VENDOR/EGL_VERSION''' you're on '''EGL'''.
# To switch back to '''GLX''', go to '''about:config''' page, look for '''gfx.x11-egl.force-disabled''' and set them to '''true''' and restart browser.


== Collect information for a bug report ==
== Collect information for a bug report ==


Please provide those information to your bug report. [https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora&component=firefox]
Please provide those information to your bug report. [https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora&component=firefox]
* Attach Firefox troubleshooting data. Open Firefox and navigate to:
about:support
page and use '''Copy text to clipboard''' to copy/paste it. Attach the info to bugreport.
* Open terminal and run
glxinfo > gfxlog.txt 2>&1
and attach created gfxlog.txt file to the bug. It contains data about your graphics card.
* Open terminal and run
vainfo > vainfo.txt 2>&1
and attach created vainfo.txt file to the bug. It contains data about your VA-API video decoder.


* If you Firefox crashes, please go to a crash stat page by visiting this link:
* If you Firefox crashes, please go to a crash stat page by visiting this link:


  ''about:crashes''
  about:crashes


and you should see crash reports ids. Please Submit them at Mozilla by '''Submit All''' button and paste Report IDs to the report at bugzilla.
and you should see crash reports ids. Please Submit them at Mozilla by '''Submit All''' button and paste Report IDs to the report at bugzilla.


* If applicable attach a '''screen cast''' or a picture of the issue.
* If you run Fedora attach exact Firefox version, type this command in terminal:
 
rpm -q firefox
 
== Create screenshot/screencast for a bug report ==
 
* If applicable attach a '''screen cast''' or a picture of the issue. Options include:
** [https://help.gnome.org/users/gnome-help/stable/screen-shot-record.html Screencast in Gnome]
** [https://obsproject.com/ OBS studio], instructions for [https://obsproject.com/kb/linux-installation installing on linux]
** More screencast info: https://www.linuxuprising.com/2020/01/4-tools-to-record-your-linux-desktop.html
 
== Testing Mozilla binaries ==
 
Some issues can be distro specific, caused by build environment, patches and so on. It's important to try vanilla binaries from Mozilla project to negate that case.
 
If you get the same Firefox version from Mozilla and from distro, you can use the same profile.
 
* Update your distro provided Firefox to latest version and test it. It has to be the same Firefox/Thunderbird version as it's provided at Mozilla official site [Firefox https://www.mozilla.org/en-US/firefox/new/][Thunderbird https://www.thunderbird.net/en-US/]
* If you still see the issue with latest Firefox/Thunderbird version from distro, download latest [Firefox https://www.mozilla.org/en-US/firefox/new/]/[Thunderbird https://www.thunderbird.net/en-US/] release from Mozilla site directly.
* Unpack the tarball. Open terminal and switch to a directory with downloaded tarball and run:
 
tar xf tarball.name
 
* Switch to extracted directory (usually name firefox/thunderbird) and run it locally as:
 
./firefox
 
this Firefox instance uses the same profile and environment as your distro provided Firefox (unless you're running Snap/Flatpak).
 
You may also check clear profile and different backend ('''X11/Wayland'''):


Screencast in Gnome:
* To run with '''X11 backend''' open terminal, run locally as below, create a new profile and test your issue:


  ''https://help.gnome.org/users/gnome-help/stable/screen-shot-record.html''
  MOZ_ENABLE_WAYLAND=0 ./firefox -ProfileManager -no-remote


Screencast in KDE and other DE:
* To use '''Wayland backend''' run as:


  ''https://pointieststick.com/2020/07/24/this-week-in-kde-screencasting-and-shared-clipboard-on-wayland/''
  MOZ_ENABLE_WAYLAND=1 ./firefox -ProfileManager -no-remote
''https://www.linuxuprising.com/2020/01/4-tools-to-record-your-linux-desktop.html''


* Attach exact Firefox version, type this command in terminal:
== Testing Mozilla Nightly binaries ==


'''rpm -q firefox'''
Some issues can be already fixed in Nightly which is a pre-release version. Please check if you can reproduce it issue there.


* Attach firefox troubleshooting data, in the URL bar, visit this link:  
* Download [Firefox Nightly https://www.mozilla.org/en-US/firefox/channel/desktop/] from Mozilla site.
* Unpack the tarball. Open terminal, switch to a directory with downloaded tarball and run:


  ''about:support''
  tar xf tarball.name


and use '''Copy text to clipboard''' to copy/paste it.
* You need to create a new profile for your Nightly instance. '''If you use Nightly with your recent (production) Firefox profile, the profile may be corrupted and you may lost your data'''. Switch to extracted directory (usually name firefox) and run it locally and create a new profile at profile manager:


== Testing Mozilla binaries ==
./firefox -ProfileManager -no-remote


Some issues can be Fedora specific, caused by build environment, patches and so on. It's important to try vanilla binaries from Mozilla project to negate that case.
* To run with '''X11 backend''' run as:


# Download Firefox [https://www.mozilla.org/en-US/firefox/new/]/Thunderbird[https://www.thunderbird.net/en-US/] from Mozilla site directly .
  MOZ_ENABLE_WAYLAND=0 ./firefox -ProfileManager -no-remote
# Unpack the tarball.
# In Terminal run locally as '''./firefox -ProfileManager -no-remote''' ('''./thunderbird -ProfileManager -no-remote'''), create a new profile and test your issue. It runs with X11 backend by default.
# To use Wayland native backend run as '''MOZ_ENABLE_WAYLAND=1 ./firefox -ProfileManager -no-remote'''. Mozilla thunderbird does not support Wayland yet.


Some issues can be already fixed in Beta or Nightly which are pre-release and development versions. Please also check those two if you can reproduce it issue.
* To use '''Wayland backend''' run as:


# Download Firefox Beta/Nightly [https://www.mozilla.org/en-US/firefox/channel/desktop/] or Thunderbird Beta [https://www.thunderbird.net/en-US/channel/] from Mozilla site.
MOZ_ENABLE_WAYLAND=1 ./firefox -ProfileManager -no-remote


== Testing Firefox titlebar ==
== Testing Firefox titlebar ==
Line 158: Line 221:
In case of unexpected Firefox titlebar behavior (missing titlebar, doubled titlebar, missing 'Title Bar' checkbox at Customize menu) try to run Firefox in terminal as:
In case of unexpected Firefox titlebar behavior (missing titlebar, doubled titlebar, missing 'Title Bar' checkbox at Customize menu) try to run Firefox in terminal as:


  '''MOZ_GTK_TITLEBAR_DECORATION=client firefox'''
  MOZ_GTK_TITLEBAR_DECORATION=client firefox


and
and


  '''MOZ_GTK_TITLEBAR_DECORATION=system firefox'''
  MOZ_GTK_TITLEBAR_DECORATION=system firefox


and check of that helps.
and check of that helps.
Line 170: Line 233:
Mozregression tool [https://mozilla.github.io/mozregression/] can be used to find offending changeset. Install mozregression on terminal by
Mozregression tool [https://mozilla.github.io/mozregression/] can be used to find offending changeset. Install mozregression on terminal by


  '''pip install mozregression'''
  pip install mozregression


and run  
and run  


  '''mozregression --good version_good --bad version_bad'''
  mozregression --good version_good --bad version_bad
 
where version_good and version_bad are affected Firefox version. For instance when something bad happens between Firefox 78.0 and 79.0, you can find that by:
 
mozregression --good 78.0 --bad 79.0
 
(You always should use full release number like 78.0 for a regular release or 78.0.1 for a dot release).


where version_good and version_bad are affected Firefox version. For instance when something bad happens between Firefox 78 and 79, you can find that by:
The mozregression tool will launch various Firefox versions and as you if the launched version is good or bad. When the bi-section is finished a regression range is printed.


'''mozregression --good 78.0 --bad 79.0'''
To test Firefox in Wayland, run mozregression with MOZ_ENABLE_WAYLAND=1 env variable, i.e.:


The mozregression wool will launch various Firefox versions and as you if the launched version is good or bad. When the bi-section is finished a regression range is printed.
MOZ_ENABLE_WAYLAND=1 mozregression --good 78.0 --bad 79.0


If you want to test Firefox in Wayland, run mozregression with MOZ_ENABLE_WAYLAND env variable, i.e.:
To test Firefox in XWayland/X11, run mozregression with MOZ_ENABLE_WAYLAND=0 env variable, i.e.:


  '''MOZ_ENABLE_WAYLAND=1 mozregression --good 78.0 --bad 79.0'''
  MOZ_ENABLE_WAYLAND=0 mozregression --good 78.0 --bad 79.0


If you have a specific profile where the bug happens, you can tell mozregression to use it for testing. For instance I have a  Firefox profile named ''default'' and I want mozregression to use it. First I need to locate the profile files, in my case it's stored at /home/user/.mozilla/firefox/80thyv9a.default (/home/user/.mozilla/firefox is a Firefox profile directory). To test it under Wayland I run:
If you have a specific profile where the bug happens, you can tell mozregression to use it for testing. For instance I have a  Firefox profile named ''default'' and I want mozregression to use it. First I need to locate the profile files, in my case it's stored at /home/user/.mozilla/firefox/80thyv9a.default (/home/user/.mozilla/firefox is a Firefox profile directory). To test it under Wayland I run:


  '''MOZ_ENABLE_WAYLAND=1 mozregression --profile /home/user/.mozilla/firefox/80thyv9a.default --profile-persistence clone-first --good 78.0 --bad 79.0'''
  MOZ_ENABLE_WAYLAND=1 mozregression --profile /home/user/.mozilla/firefox/80thyv9a.default --profile-persistence clone-first --good 78.0 --bad 79.0


(note the --profile-persistence clone-first parameter to clone the profile before use which protects your data)
(note the --profile-persistence clone-first parameter to clone the profile before use which protects your data)
A different application can be run by '''--app''' parameter. To probe '''thunderbird''' run:
mozregression --app thunderbird
More info is available at [https://mozilla.github.io/mozregression/documentation/usage.html Mozregression doc page].


== Testing different Wayland compositor ==
== Testing different Wayland compositor ==


Actual Wayland compositor may be source of various bugs. Fedora considers Mutter (Gnome) Wayland compositor as a default one. If you run Firefox on a different compositor (Sway/KWim) please also try to reproduce the bug on Mutter as it helps to sort out Firefox and compositor (Mutter/Sway/Kwim) bugs.
Actual Wayland compositor may be source of various bugs. Fedora considers Mutter (Gnome) Wayland compositor as a default one. If you run Firefox on a different compositor (Sway/KWin) please also try to reproduce the bug on Mutter as it helps to sort out Firefox and compositor (Mutter/Sway/KWin) bugs.


You don't need to install whole Gnome environment for it, just install mutter package and run Mutter as a nested compositor on terminal as:
You don't need to install whole Gnome environment for it, just install mutter package and run Mutter as a nested compositor on terminal as:


  '''mutter --wayland --nested'''
  mutter --wayland --nested


Mutter will create a new Wayland session inside your active one. To run Firefox (and any other Wayland application) there you need to set proper Wayland display by WAYLAND-DISPLAY env variable. You should be already running on 'wayland-0' and the new one (created by nested compositor) may be 'wayland-1' then. So launch Firefox on nested compositor as:
Mutter will create a new Wayland session inside your active one. To run Firefox (and any other Wayland application) there you need to set proper Wayland display by WAYLAND-DISPLAY env variable. You should be already running on 'wayland-0' and the new one (created by nested compositor) may be 'wayland-1' then. So launch Firefox on nested compositor as:


  '''WAYLAND_DISPLAY=wayland-1 MOZ_ENABLE_WAYLAND=1 firefox'''
  WAYLAND_DISPLAY=wayland-1 MOZ_ENABLE_WAYLAND=1 firefox


It's also useful to test KDE Plasma compositor (Kwim) which can be also run as a nested compositor. For testing I launch it as:
It's also useful to test KDE Plasma compositor (KWin) which can be also run as a nested compositor. For testing I launch it as:


  '''kwin_wayland --xwayland --width 1920 --height 1024'''
  kwin_wayland --xwayland --width 1920 --height 1024


and then run Firefox as above (with wayland-1 Wayland display set).
and then run Firefox as above (with wayland-1 Wayland display set).
== Getting Mozilla crash report from running or frozen Firefox ==
You can kill running application by kill signal and then obtain and submit Mozilla crash stats.
To terminate all firefox instances run on terminal:
kill -s 11 $(pidof firefox)
This should terminate all Firefox instances and produce Mozilla crash report dialog. In next Firefox run you should see crash ID at '''about:crashes''' page. Please submit the crash to Mozilla and paste crash ID to bugreport.


== Get system log after system freeze / restart ==
== Get system log after system freeze / restart ==
Line 214: Line 298:
If you suffer from whole system lockups / sudden restart you can examine system log from previous session and look for relevant entries like gfx driver errors, kernel errors or Gnome/Mutter failures. Right after restart run on terminal:
If you suffer from whole system lockups / sudden restart you can examine system log from previous session and look for relevant entries like gfx driver errors, kernel errors or Gnome/Mutter failures. Right after restart run on terminal:


  '''journalctl -b -1'''
  journalctl -b -1


It shows a log from previous session, the '-b -1' param tells journalctl to show log from previous boot.
It shows a log from previous session, the '-b -1' param tells journalctl to show log from previous boot.
Line 220: Line 304:
= Additional Reading =
= Additional Reading =


* Additional accessibility prefs can be found here: [http://kb.mozillazine.org/Accessibility_features_of_Firefox]
* Additional accessibility prefs can be found here: [https://kb.mozillazine.org/Accessibility_features_of_Firefox]


* Additional hidden prefs can be found here: [https://www.mozilla.org/unix/customizing.html]
* Additional hidden prefs can be found here: [https://www.mozilla.org/unix/customizing.html]


* Mozilla's own basic trouble-shooting page: [http://support.mozilla.com/en-US/kb/Basic+Troubleshooting]
* Mozilla's own basic trouble-shooting page: [https://support.mozilla.com/en-US/kb/Basic+Troubleshooting]
 
* Mozilla support page: [http://support.mozilla.com/en-US/kb/]


* Bug info Firefox: [[Bug_info_Firefox]]
* Mozilla support page: [https://support.mozilla.org/en-US/products/firefox]


* StackTraces - Firefox: [[StackTraces#Firefox]]
* [[StackTraces#Firefox]]

Latest revision as of 10:17, 15 July 2024

Standard troubleshooting steps

Restart Firefox

Close Firefox completely: From the menu at the top of the Firefox windowbar, select File and then select the Quit menu item. Then restart your computer and start Firefox again.

Verify Firefox installation integrity

Open terminal and run this command:

rpm -qV firefox

If Firefox installation is correct you don't get any output. If there's something printed please re-install Firefox by rpm/dnf on terminal as:

sudo dnf remove firefox
sudo dnf install firefox

Run in safe mode

Safe mode can be used to start Firefox in basic safe configuration. Open terminal and:

  • Make sure no Firefox instance is running. This terminal command:
pidof firefox

should not print any output as it reports PID of running Firefox instances. If you see any running instances please reboot your computer (or use kill/killall command).

  • Launch Firefox in safe mode
firefox --safe-mode

Test Firefox with a new profile

If the steps above don't fix your problem, continue by following these instructions.

Make a new profile

A corrupt profile can cause various problems with Firefox. You can try to make a new profile test whether that solves the problem, and if so, copy your data (bookmarks, saved passwords, etc.) to the new profile.

Important: Before you can start the Profile Manager, Firefox must be completely closed.

  1. Exit Firefox. To close Firefox, at the top of the Firefox window, select the File menu, and then select Quit.
  2. In Terminal run: firefox --ProfileManager --no-remote
    • If the Profile Manager window does not open, Firefox may have been running in the background, even though it was not visible. Close all instances of Firefox or restart the computer and then try again.
  3. To start the Create Profile Wizard, click Create Profile... in the Profile Manager.
  4. Click Next and enter the name of the profile. Use a profile name that is descriptive, such as your personal name. This name is not exposed on the Internet.
  5. To create the new profile, click Finish.
  6. Click on the newly created profile in the Profile Manager and click Start Firefox.

Test to see if your problem occurs with the new profile. If it doesn't, you can copy your data to the new profile - see Recovering important data from an old profile for instructions.

If Firefox fails to start with your recent profile and says Firefox is already running you can try to delete lock from your default profile to recover it:

  1. Find a default profile directory (it's usually ~/.mozilla/firefox/xxxxxx.default), you can get it at ~/.mozilla/firefox/profiles.ini file.
  2. Remove 'lock' file for it (when Firefox crashes the profile may be locked).
  3. Try to start Firefox again on terminal, check for any error messages.

Clear cookies and cache

Many problems with loading web pages can be resolved by clearing Firefox's cookies and cache. If the new profile helps you, you can try to clear your existing old profile:

  1. Click on the sandwich menu button, select History, then select Clear Recent History... to bring up the Clear Recent History window
  2. In the Time range to clear drop-down menu, select Everything
  3. Click the arrow next to Details to display the list of items to clear, then select the following items:
    • Cache
    • Cookies
  4. Click Clear Now.
  5. Exit your browser

For more information, see Clear Recent History. [1]

Troubleshoot Add-ons / plugins

Sometimes add-ons for Firefox (Extensions, Themes or Plugins) can cause problems and you can disable them one-by-one:

  1. Open the Add-ons Window by clicking the Tools menu and select Add-ons.
  2. There are three tabs - Extensions, Themes, Plugins so select the one you want to test
  3. Disable each extensions/theme/plugin in the list.
  4. Test for your problem.

Firefox performance issues

There are two sources of possible performance issues - opened site/addon or Firefox itself. To identify hungry site/addon go to

about:performance

page and check for component which uses most of resources.

Firefox internal performance issues can be investigated by Firefox Profiler, go to

https://profiler.firefox.com/

site and enable Firefox profiling. Please share and attach the profile to bugreport (you can also anonymize it).

Check WebRender state (Hardware acceleration)

WebRender is Firefox hardware accelerated back end which uses OpenGL. It's enabled by default on Gnome/X.org and Gnome/Wayland for Intel/AMD graphics cards. You can try to switch WebRender to software backend to check if that solves your issues.

WebRedner Firefox setup
  1. Go to about:support page and check Compositing field. It's WebRender for hardware/OpenGL rendering and WebRender (Software) for software one.
  2. To disable WebRender hardware backend, go to about:config page and look for gfx.webrender.software preference and set it to true.
  3. Restart browser, check at about:support for WebRender status.

Check Firefox X11 backend

Firefox can run with two independent Gtk+ backends / graphics servers while Wayland is a default one on some distros (Fedora, Ubuntu 20.04+). You can try to switch back to X11 to check if that helps.

On Fedora:

  1. install firefox-x11 package
  2. close all active firefox instances
  3. run Firefox on X11 from menu or firefox-x11 in Terminal
  4. go to about:support page, look for Window Protocol field. You should have x11 there.


On other distros:

  1. close all active firefox instances
  2. open terminal
  3. run MOZ_ENABLE_WAYLAND=0 firefox
  4. go to about:support page, look for Window Protocol field. You should have x11 there.

Check Firefox X11 GLX/EGL backend

Firefox can run with two independent OpenGL backends - EGL and GLX (details available here). EGL becomes default in Firefox 94 but you can switch back to GLX in case of issues.

  1. Go to about:support page and check WebGL 1 Driver field. If it contains EGL_VENDOR/EGL_VERSION you're on EGL.
  2. To switch back to GLX, go to about:config page, look for gfx.x11-egl.force-disabled and set them to true and restart browser.

Collect information for a bug report

Please provide those information to your bug report. [2]

  • Attach Firefox troubleshooting data. Open Firefox and navigate to:
about:support

page and use Copy text to clipboard to copy/paste it. Attach the info to bugreport.

  • Open terminal and run
glxinfo > gfxlog.txt 2>&1

and attach created gfxlog.txt file to the bug. It contains data about your graphics card.

  • Open terminal and run
vainfo > vainfo.txt 2>&1

and attach created vainfo.txt file to the bug. It contains data about your VA-API video decoder.

  • If you Firefox crashes, please go to a crash stat page by visiting this link:
about:crashes

and you should see crash reports ids. Please Submit them at Mozilla by Submit All button and paste Report IDs to the report at bugzilla.

  • If you run Fedora attach exact Firefox version, type this command in terminal:
rpm -q firefox

Create screenshot/screencast for a bug report

Testing Mozilla binaries

Some issues can be distro specific, caused by build environment, patches and so on. It's important to try vanilla binaries from Mozilla project to negate that case.

If you get the same Firefox version from Mozilla and from distro, you can use the same profile.

tar xf tarball.name
  • Switch to extracted directory (usually name firefox/thunderbird) and run it locally as:
./firefox

this Firefox instance uses the same profile and environment as your distro provided Firefox (unless you're running Snap/Flatpak).

You may also check clear profile and different backend (X11/Wayland):

  • To run with X11 backend open terminal, run locally as below, create a new profile and test your issue:
MOZ_ENABLE_WAYLAND=0 ./firefox -ProfileManager -no-remote
  • To use Wayland backend run as:
MOZ_ENABLE_WAYLAND=1 ./firefox -ProfileManager -no-remote

Testing Mozilla Nightly binaries

Some issues can be already fixed in Nightly which is a pre-release version. Please check if you can reproduce it issue there.

tar xf tarball.name
  • You need to create a new profile for your Nightly instance. If you use Nightly with your recent (production) Firefox profile, the profile may be corrupted and you may lost your data. Switch to extracted directory (usually name firefox) and run it locally and create a new profile at profile manager:
./firefox -ProfileManager -no-remote
  • To run with X11 backend run as:
MOZ_ENABLE_WAYLAND=0 ./firefox -ProfileManager -no-remote
  • To use Wayland backend run as:
MOZ_ENABLE_WAYLAND=1 ./firefox -ProfileManager -no-remote

Testing Firefox titlebar

In case of unexpected Firefox titlebar behavior (missing titlebar, doubled titlebar, missing 'Title Bar' checkbox at Customize menu) try to run Firefox in terminal as:

MOZ_GTK_TITLEBAR_DECORATION=client firefox

and

MOZ_GTK_TITLEBAR_DECORATION=system firefox

and check of that helps.

Use Mozregression tool

Mozregression tool [3] can be used to find offending changeset. Install mozregression on terminal by

pip install mozregression

and run

mozregression --good version_good --bad version_bad

where version_good and version_bad are affected Firefox version. For instance when something bad happens between Firefox 78.0 and 79.0, you can find that by:

mozregression --good 78.0 --bad 79.0

(You always should use full release number like 78.0 for a regular release or 78.0.1 for a dot release).

The mozregression tool will launch various Firefox versions and as you if the launched version is good or bad. When the bi-section is finished a regression range is printed.

To test Firefox in Wayland, run mozregression with MOZ_ENABLE_WAYLAND=1 env variable, i.e.:

MOZ_ENABLE_WAYLAND=1 mozregression --good 78.0 --bad 79.0

To test Firefox in XWayland/X11, run mozregression with MOZ_ENABLE_WAYLAND=0 env variable, i.e.:

MOZ_ENABLE_WAYLAND=0 mozregression --good 78.0 --bad 79.0

If you have a specific profile where the bug happens, you can tell mozregression to use it for testing. For instance I have a Firefox profile named default and I want mozregression to use it. First I need to locate the profile files, in my case it's stored at /home/user/.mozilla/firefox/80thyv9a.default (/home/user/.mozilla/firefox is a Firefox profile directory). To test it under Wayland I run:

MOZ_ENABLE_WAYLAND=1 mozregression --profile /home/user/.mozilla/firefox/80thyv9a.default --profile-persistence clone-first --good 78.0 --bad 79.0

(note the --profile-persistence clone-first parameter to clone the profile before use which protects your data)

A different application can be run by --app parameter. To probe thunderbird run:

mozregression --app thunderbird

More info is available at Mozregression doc page.

Testing different Wayland compositor

Actual Wayland compositor may be source of various bugs. Fedora considers Mutter (Gnome) Wayland compositor as a default one. If you run Firefox on a different compositor (Sway/KWin) please also try to reproduce the bug on Mutter as it helps to sort out Firefox and compositor (Mutter/Sway/KWin) bugs.

You don't need to install whole Gnome environment for it, just install mutter package and run Mutter as a nested compositor on terminal as:

mutter --wayland --nested

Mutter will create a new Wayland session inside your active one. To run Firefox (and any other Wayland application) there you need to set proper Wayland display by WAYLAND-DISPLAY env variable. You should be already running on 'wayland-0' and the new one (created by nested compositor) may be 'wayland-1' then. So launch Firefox on nested compositor as:

WAYLAND_DISPLAY=wayland-1 MOZ_ENABLE_WAYLAND=1 firefox

It's also useful to test KDE Plasma compositor (KWin) which can be also run as a nested compositor. For testing I launch it as:

kwin_wayland --xwayland --width 1920 --height 1024

and then run Firefox as above (with wayland-1 Wayland display set).

Getting Mozilla crash report from running or frozen Firefox

You can kill running application by kill signal and then obtain and submit Mozilla crash stats.

To terminate all firefox instances run on terminal:

kill -s 11 $(pidof firefox)

This should terminate all Firefox instances and produce Mozilla crash report dialog. In next Firefox run you should see crash ID at about:crashes page. Please submit the crash to Mozilla and paste crash ID to bugreport.

Get system log after system freeze / restart

If you suffer from whole system lockups / sudden restart you can examine system log from previous session and look for relevant entries like gfx driver errors, kernel errors or Gnome/Mutter failures. Right after restart run on terminal:

journalctl -b -1

It shows a log from previous session, the '-b -1' param tells journalctl to show log from previous boot.

Additional Reading

  • Additional accessibility prefs can be found here: [4]
  • Additional hidden prefs can be found here: [5]
  • Mozilla's own basic trouble-shooting page: [6]
  • Mozilla support page: [7]