Firefox (简体中文)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
翻译状态:本文是 Firefox翻译。上次翻译日期:2020-11-07。如果英文版本有所更改,则您可以帮助同步翻译。

Firefox(火狐)是Mozilla(谋智网络)出品的一款图形界面网络浏览器。

安装

安装 软件包 firefox.中文界面请安装简体中文语言包 firefox-i18n-zh-cn

其它变种:

  • Firefox Developer Edition — 开发者版本
https://www.mozilla.org/firefox/developer/ || firefox-developer-edition
  • Firefox Extended Support Release — 长期支持版本
https://www.mozilla.org/firefox/organizations/ || firefox-esrAUR or firefox-esr-binAUR
  • Firefox Beta — 前沿版本
https://www.mozilla.org/firefox/channel/desktop/#beta || firefox-betaAUR or firefox-beta-binAUR
https://www.mozilla.org/firefox/channel/desktop/#nightly || firefox-nightlyAUR
  • Firefox KDE — OpenSUSE 打过补丁的、具有更好的 KDE 集成的 Firefox 版本。
https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox || firefox-kde-opensuseAUR

附加组件

参见: 浏览器插件

Firefox 广为人知的一点是它的大量的附加组件,可以用来添加新功能或更改 Firefox 中已有功能。你可以在 Firefox 中的“附加组件管理器”中查找新附加组件或管理已安装的附加组件。

增加搜索引擎

将搜索页建立一个书签,搜索的关键词用%s替代,就像这样:

Location:
https://duckduckgo.com/html/?q=%s
Keyword:
d

也可以通过扩展程序添加搜索引擎到Firefox,有关可用搜索工具和引擎的列表,请参见 这个页面

可以在以下网址找到大量搜索引擎列表:Mycroft Project.

你也可以用 add-to-searchbar 扩展来把搜索引擎添加到浏览器搜索框中,只需右键单击该网站的搜索字段,然后选择 Add to Search Bar...

firefox-extension-arch-search

firefox-extension-arch-searchAUR为Firefox搜索框添加Arch相关内容的搜索引擎(AUR、wiki、论坛……):

插件

Firefox 85 中移除了对所有插件的支持,包括 Flash Player。[1][2]

配置

Firefox提供不少配置项。要查看或者配置它们,在Firefox地址栏中输入:

 about:config

注意:一旦在about:config里改变了一些配置项的值,它们就会立刻影响用户当前的配置文件,其中一些配置项可能通过 Firefox Sync 跨设备同步。 不是所有在about:config中修改的配置项都可以通过 Firefox Sync 同步;要知道到底哪一些配置项会被 Firefox Sync 同步,只需在about:config中检索services.sync.prefs即可了解。 同时,你也可以创建新的布尔项来同步其他配置项和第三方配置项(详见Mozilla官方文档[失效链接 2021-11-10 ⓘ])。 关于对扩展程序 NoScript 的白名单进行同步的方法,请使用这个配置项:

 services.sync.prefs.sync.capability.policy.maonoscript.sites

NoScript的其他偏好设置也可以用 Firefox Sync同步,只需将配置项noscript.sync.enabled设置为true

Firefox还允许你用user.js进行一些配置。

user.js文件保存在配置文件文件夹中(通常是~/.mozilla/firefox/xxxxxxx.default/)。推荐想要修改这个文件的人看一看custom user.js,它对追求隐私和安全意识高的用户很是有用。

user.js有一个缺点就是它不能在系统范围内见效。而且user.js也不能用于预配置,因为user.js所在的配置文件目录是在首次启动浏览器之后才创建的。解决此问题的一个方法是先让 Firefox创建一个新的配置文件,然后在关闭它之后,把已经创建好的配置文件文件夹的内容复制进去。(详见Mozilla官方文档

有时可能需要锁定某些配置项,对一些用户来讲实乃一个非常有用的功能(特别是进行定制部署之时)。要创建系统范围的配置,按照 Locking preferences的步骤操作吧!

1.创建/usr/lib/firefox/defaults/pref/local-settings.js文件:

 pref(“general.config.obscure_value”,0);
 pref(“general.config.filename”,“mozilla.cfg”);

2.创建/usr/lib/firefox/mozilla.cfg(在这里写入配置项):

//
//...your settings...
// e.g to disable Pocket, uncomment the following line
// lockPref("browser.pocket.enabled", false);

请注意,文件第一行必须包含//;此外,其语法与user.js的语法很相似。

多媒体播放

Firefox用FFmpeg来播放HTML5中<audio><video>标签内的多媒体内容,所以要放多媒体的话。你要先安装ffmpeg

你可以到这个用来测试视频播放的网页这个用来测试音频播放的网页 来看看你的Firefox是否支持多媒体播放,以及如果支持,支持了哪一些格式。

Firefox用PulseAudio 来播放音频. 所以如果要让Firefox发出声音,你要安装 pulseaudio 这个软件包.

如果你不用 PulseAudio, 也可以换用 apulse. 为此你必须要把 /dev/snd/ 从Firefox沙箱中排除,具体方法是把/dev/snd/添加到about:config中的security.sandbox.content.write_path_whitelist配置项里去(注:若此配置项的值包含多个内容,请把它们用逗号分隔。)

注意: /dev/snd/里最后那个斜杠/一定要加,否则会报“权限不足”的错误

假如你在用apulse时发现没有声音, 试着把 16 加进 about:config页中的security.sandbox.content.syscall_whitelist 里头。

HTML5 DRM/Widevine

Widevine是Netflix,Amazon Prime Video和其他公司用来保护其视频内容的数字版权管理工具。你可以在“首选项>常规>数字版权管理(DRM)内容”中把它启用。 如果在禁用此设置的情况下访问启用了Widevine的页面,则Firefox将在地址栏下方显示提示,询问是否允许安装DRM。选择允许并等待安装过程完成之后,就可以在被Widevine保护的站点观看视频了。

Widevine要求你在观看保护的视频内容时,不要开启隐私浏览模式,否则视频可能不会正常播放。

“打开方式”(Open With ...)扩展程序

  1. 安装 Open With 扩展程序.
  2. 进入 附加组件 > Open With > 首选项.
  3. 按照说明在系统中安装文件并测试安装。
  4. 单击 Add browser.
  5. 在对话框中,输入此菜单项的名称和用于启动播放器的命令 (e.g. /usr/bin/mpv).
  6. (选做) 向播放器添加所需的参数 (比方说,在mpv中,你可能需要 --force-window --ytdl )
  7. 右键或访问包含视频的链接. 从“打开方式”菜单中选择新创建的条目,如果支持该站点,则播放器将按预期方式打开。

可以使用类似方法来关联视频下载器,例如 youtube-dl.

视频硬解

使用VA-API进行视频硬解已经在 Wayland (详见 Firefox gets VA-API on Wayland) 和 X.org 上可用了 (详见 bugzilla X11 implement VAAPIPhoronix news VA API X11).

注意: 既使用AMDGPU也使用 linux-hardened 内核的用户可能需要用 CONFIG_CHECKPOINT_RESTORE=y选项rebuild一下 linux-hardened,因为 mesa 需要 kcmp syscall.

为Firefox启用 VA-API :

  1. 确保你的显卡正确配置了 VA-API:
  2. 使用支持硬解的合成器, 例如:
  3. about:config里设置下面的flags:
    • 设置media.ffmpeg.vaapi.enabledtrue 启用 VA-API with FFmpeg.
    • 设置media.ffvpx.enabledfalse 禁用 VP8/VP9 的内部解码器. 这是必要的,虽然this bug being fixed [5][6].
    • 设置media.navigator.mediadatadecoder_vpx_enabledtrue 启用WebRTC的 VA-API 硬件解码 [7].
    • 设置media.rdd-vpx.enabledfalse 禁用VP8/VP9的remote data decoder 处理 . Firefox 会尝试为VP8/VP9使用 RDD 处理但是 RDD 沙盒会禁用 VA-API 访问 [8]. 禁用VP8/VP9进程的远程数据解码器意味着VA-API将改在content process中运行。最好的解决办法是将VA-API移到GPU进程中。 [9].
      • 另一个解决办法是通过设置 media.rdd-process.enabledfalse完全禁用 RDD 处理 , 而不是像上面那样只禁用 VP8/VP9.
    • 在Intel上, 有些时候VA-API 可能在Intel iHD 驱动 intel-media-driver上不工作. 可以通过使用 Intel i965 驱动 libva-intel-driver解决. 这个方法不对只支持intel-media-driver驱动的Intel Iris Xe 显卡适用, 唯一的方法就是等待 Firefox实现X11/Wayland的GPU处理 (planned FF94) [10] [11] [12].
      • 作为最后的手段, content process sandbox 可以被禁用. 然而, 这会造成一个严重的安全隐患,导致对攻击者的保护失效。. 建议将沙箱设置保持为默认状态 [13]. 要禁用内容沙箱,请设置 security.sandbox.content.level0 [14].
  4. 以下列environment variable 启动Firefox:
    • 对于Wayland, 使用 MOZ_ENABLE_WAYLAND=1, 参照 #Wayland[损坏的链接:无效的章节].
    • 对于X.org, 使用 MOZ_X11_EGL=1 或者 在about:config里设置 gfx.x11-egl.force-enabledtruegfx.x11-egl.force-disabledfalse .
警告: 禁用content process sandbox会导致安全风险. 在未来,VA-API将被转移到GPU进程中,因此它被适当地沙盒化.
提示:
  • 您可以通过以下方式运行Firefox来验证是否已启用VA-API:添加环境变量 MOZ_LOG="PlatformDecoderModule:5" ,用浏览器播放一段视频,并检查日志输出(查询字符串"VA-API")。请注意这些日志,因为它们可以表明前面描述的两个可能的合成器(OpenGL或WebRender)中究竟哪一个被使用了。
  • Intel GPU用户, intel-gpu-tools 中的intel_gpu_top可以被用来在播放视频时监控GPU活动.
  • 要在YouTube中使用硬件解码,硬件必须支持所使用的视频编解码器。 您的GPU支持的配置文件可以通过 Hardware video acceleration#Verifying VA-API找到;YouTube 使用的解码器由h264ifyenhanced-h264ify 扩展所控制. 或者,你也可以安装firefox-h264ifyAUR.

拼写检查字典

选择任意文本,右键为该语言添加字典,重启浏览器即可。

或者从 官方软件仓库安装软件包hunspell和其它语言例如 hunspell-fr (法语) or hunspell-he (希伯来语)。

默认情况下,Firefox 会在 /usr/lib/firefox/dictionaries 生成指向到 hunspell 字典的软链接。如果你不想使用所有语言的字典,可以删掉一部分。注意,Firefox 升级可能会还原这些软链接。

Gnome Keyring 整合

要整合 Firefox 与 GNOME Keyring,安装 Javascript 实现的 mozilla-extension-gnome-keyring-gitAUR[损坏的链接:package not found]。要让 firefox-gnome-keyring 使用你的登录 keychain,在 about:config 中设置 extensions.gnome-keyring.keyringName 为 "login" (不含引号)。注意 "login" 的首字母应为小写。

KDE 整合

警告: 由于GTK3更新到3.20.x,有一些主题不能正常使用(包括Breeze,推荐的一个KDE和GTK间的整合主题)。 其中的一些问题是滚动条不可见,不选中的文本高亮显示,隐藏的复选框等等。 若要解决这个问题,安装kde-gtk-config后,进入系统设置 - >应用程序样式 - > GNOME应用程序样式(GTK),然后在选择GTK3主题下拉菜单中选择默认主题。 有关上述兼容性问题的更多信息,请访问Arch Forums中的有关GTK3 3.20 更新的帖子。
  • 在 Firefox 中使用 GTK 外观。安装 breeze-gtkkde-gtk-config。然后进入系统设置 -> 程序外观 -> GTK,GTK2/GTK3 主题选择为 Breeze,勾选显示 GTK 按钮的图标。
  • 可以使用 AUR 中的 firefox-kde-opensuseAUR Firefox 变种来集成 KDE 的文件关联系统和文件对话框。

小技巧

如果只是一般的改进可以参看Firefox/Tweaks, 隐私上的改进则可以参看 Firefox/Privacy.

暗黑主题

如果你使用了暗黑 GTK主题 (比方说:Arc Dark), 建议你用亮色主题打开 Firefox (比方说:Adwaita). 参看 GTK#ThemesFirefox/Tweaks#Unreadable input fields with dark GTK themes 来了解更多.

另外,从Firefox 68开始,您可以使所有Firefox界面甚至其他网站都遵循暗黑主题。方法是在about:config中设定 browser.in-content.dark-modetrue 并把ui.systemUsesDarkTheme 设定为 1 [15].

帧率

如果Firefox无法自动检测到正确的帧率,则默认为60 fps。 要手动更正,请将layout.frame_rate设置为显示器的刷新率(例如144 Hz)。

限制内存使用

防止页面滥用内存 (或者 OOM), 我们可以用 Firejailrlimit-as 选项.

新标签页的位置

要控制新标签的显示位置(相对或绝对),请使用 browser.tabs.insertAfterCurrentbrowser.tabs.insertRelatedAfterCurrent。详见 [16] 来了解更多信息.

网页截图

您可以通过单击地址栏中的“页面动作”按钮(就是那三个水平点)来截屏。 有关更多信息,请参见[17]

此外Developer Tools也不失为一种可行的办法

Wayland 支持

较新版本的Firefox支持通过环境变量启用Wayland支持。

$ MOZ_ENABLE_WAYLAND=1 firefox

要使该选项永久启用,请参见 Environment variables#Graphical environment 然后像通常一样通过桌面启动器启动Firefox。 为了验证它是否有效,再次检查“窗口协议”。

方法是,在 about:support 中检查 窗口协议. 值应该是wayland/drm 而非x11.

窗口管理器规则

要将不同的配置应用于Firefox窗口,请使用Firefox的--class选项将WM_CLASS字符串更改为自定义选项。

配置文件

要启动新的Firefox实例,需要“多个配置文件”。至于如何创建新的配置文件:

$ firefox [--new-instance] -P

使用未在使用的配置文件启动Firefox时可指定class:

$ firefox [--new-instance] -P profile_name --class=class_name

触摸屏手势和触控板滚动

要启用触摸手势(如滚动和缩放),以及良好的触控板滚动,请在启动Firefox之前设置此环境变量。

   MOZ_USE_XINPUT2=1

设定多个主页

要在启动Firefox时打开多个选项卡,请打开一个新窗口,然后打开那些想要设为主页的网站。

然后转到“首选项>主页”,然后在“主页和新窗口”下,单击“使用当前页面”按钮。

或者,直接转到“首选项>主页”,然后在“主页和新窗口”下,将第一个字段设置为“自定义URL。”,然后以以下格式输入要作为主页的页面:

https://url1.com|https://url2.com|https://url3.com

疑难解答

某些扩展不能在 Mozilla 拥有的域名中工作

一般来说,扩展不会对 extensions.webextensions.restrictedDomains 中的域名起效。 如果想更改这个设置,可以清除该字段。 (注意这对像about:*这样的特殊页面没有影响).

Firefox 启动时间太长

如果 Firefox 启动时间比其它浏览器更长,这可能是因为 /etc/hosts 里没有设置 localhost。查看 Network configuration#Local network hostname resolution 了解怎么设置。

字体问题

参见 Font configuration.

Firefox 有一个设置用于决定允许从 fontconfig 替换多少次。要允许它使用你所有的替换规则,请更改gfx.font_rendering.fontconfig.max_generic_substitutions127 (注:127是该字段可填写的最大值).

Firefox 附带了 Twemoji Mozilla 字体. 如果你想使用系统的 emoji 字体请在about:configfont.name-list.emoji 设置为 emoji.

Firefox 在 Emoji 显示上有问题。 [18]. 要解决此问题,可以将gfx.font_rendering.fontconfig.max_generic_substitutions 设定为 0.

设置 email 客户端

一般地,Firefox 会使用像 Gmail 或 Yahoo Mail 这样的 Web 程序打开 mailto 链接。要使 Firefox 用你的email 客户端打开 mailto 链接,找到 选项 > 应用程序 并将 mailto 对应的动作修改为你的 email 客户端的准确路径,如 /usr/bin/kmail

mailto链接由x-scheme-handler/mailto mime类型处理,可以使用xdg-mime轻松配置。 有关详细信息和备选方法,请参阅『默认应用程序』

文件关联

参见 Default applications.

Firefox 自动创建 ~/Desktop,但我不需要

Firefox 默认使用 ~/Desktop 作为上传和下载目录。按 XDG user directories 中的说明修改 XDG_DESKTOP_DIR.

禁止插件弹窗

有些插件,如Flash,会忽略浏览器设置,弹出窗口。要阻止这种弹窗:

  1. 打开 about:config。
  2. 右键添加新的整数项目。
  3. 命名为 privacy.popups.disable_from_plugins。
  4. 设置为2。

可用值如下:

  • 0: 允许所有插件弹窗。
  • 1: 允许弹窗,但限制在dom.popup_maximum数值内。
  • 2: 禁止插件弹窗。
  • 3: 禁止插件弹窗,即使是可信站点。

对userChrome.css和userContent.css的修改不起效

about:config中将 toolkit.legacyUserProfileCustomizations.stylesheets 设定为 true

中键点击问题

! 此 URL 无效,无法载入,

许多人使用中键点击时会莫名跳转到某页面,或者出现上述错误。

问题的原因是,许多类UNIX操作系统设置鼠标中键执行粘贴操作。这与Firefox的功能冲突了(在新窗口打开链接)。可以关闭Firefox的这项功能:

在浏览器地址栏输入:

about:config

打开并找到middlemouse.contentLoadURL项,设置为false。

此外,如果要打开中键点击出现滚轮的功能(Windows默认启用),设置general.autoScroll为true。

Backspace 键无法实现“后退”功能

根据 MozillaZine上的链接, Backspace 键执行的操作是基于运行浏览器的平台而决定的。不过,有一个首选项可以用于配置Backspace键返回/前进、上/下滚动页面或不执行任何操作。

要想使Backspace用于返回上一页, Shift+Backspace 用于前进一页, 可以在about:config中将browser.backspace_action 设定为 0.

要想使Backspace 用于向上滚动页面,Shift+Backspace用于向下滚动页面,将 browser.backspace_action 设定为 1.

若将此属性设置为上文所述之外的其他值,Backspace将不执行任何操作。(Arch Linux默认为2, 换句话说,Arch Linux 中的 Firefox 默认不对Backspace做出任何反应).

无法记录登录信息

有可能是Firefox profile文件夹中的cookies.sqlite损坏了。关闭浏览器后删除cookie.sqlite即可:

打开终端输入:

$ cd ~/.mozilla/firefox/xxxxxxxx.default/
$ rm -f cookies.sqlite
注意: xxxxxxxx 表示由Firefox随机生成的8个字符

重启Firefox检查问题是否解决。 如果没解决,可以检查一下是否存在cookies.sqlite.bak文件。如果存在,你可以用它手动恢复 Cookies 信息。

不能进入/退出全屏模式

如果 Firefox 检测到了EWMH/ICCCM 兼容的窗口管理器, 它就会尝试发送一个 WM_STATE 消息到根窗口来请求进入(或退出)全屏模式(由窗口管理器所定义). 窗口管理器可以忽略它们, 但是一旦它们忽略, Firefox会假设请求被拒绝,并将其告知给最终用户,结果什么都没有发生。 这可能导致的现象之一就是没法全屏查看视频。一种解决方案是在about:config中将full-screen-api.ignore-widgets设定为true.

Firefox 错误地认为插件过时

关闭Firefox时,后者会将当前的时间戳和插件版本保存在配置文件文件夹中的pluginreg.dat中,通常在 ~/.mozilla/firefox/some name.default/ 中。

如果Firefox在运行时升级了插件,则会在该文件中包含错误的信息。 当你下一次重启 Firefox 时,会报告一个错误『Firefox已经阻止了过时的插件“插件名称”在运行』。这个问题通常出现在官方的Adobe Flash Player插件上,而Firefox在运行时已经升级。

解决方案是从您的配置文件中删除文件pluginreg.dat。事实上,Firefox不会由于丢失的文件而停止运行,因为下次Firefox关闭时,它将被重新创建。 [19]

在一些网页中,Javascript 上下文菜单不显示

about:configdom.w3c_touch_events.enabled 设置为 0.

Firefox 不保存默认的拼写检查语言

默认的拼写检查语言可以用下面的方式设置:

  1. 在地址栏中打开 about:config.
  2. spellchecker.dictionary 设置为你的语言,例如 en_GB.
  3. 注意对于 Firefox 安装的词典插件来说,符号是 en-GB,而对于 hunspell 词典来说,符号是 en_GB.

当你只有 hunspell 词典时, Firefox 可能不会保存你默认的词典语言设置。要解决这个问题,你可以添加至少一个 词典 插件. 注意现在附加组件中也会有词典栏.

StackExchange 上的相关问题: [20], [21], [22]

相关的漏洞报告: Bugzilla 776028, Ubuntu bug 1026869

一些 MathML 符号消失了

你需要一些数学字体,比如 Latin Modern Math 和 STIX (查看这个 MDN 页面: [23]) 以正确的显示 MathML。

在 Arch Linux 中,texlive-coretexlive-fontsextra 提供了这些字体,但是默认情况下设置字体却无法使用它们。详情参见 TeX Live#Making fonts available to Fontconfig。你也可以尝试 Math fonts

全屏模式下视频断裂

如果你使用 Xorg Intel 或者 Nouveau 驱动并且感觉全屏模式下视频有撕裂感,试试 Firefox/Tweaks#Enable Legacy OpenGL compositor

滚动时屏幕撕裂

首选项 > 浏览中关闭平滑滚动.

Firefox WebRTC 模块不能侦测到麦克风

Firefox WebRTC getUserMedia 测试页面声称找不到麦克风,ALSA或PulseAudio都会出现问题。Firefox调试日志显示以下错误:

$ NSPR_LOG_MODULES=MediaManager:5,GetUserMedia:5 firefox
...
[Unnamed thread 0x7fd7c0654340]: D/GetUserMedia  VoEHardware:GetRecordingDeviceName: Failed 1

你可以尝试在about:config中将media.navigator.audio.full_duplex设定为false 然后重启Firefox.

如果你在用PulseAudio module-echo-cancel且不能识别Virtual Echo Canceling Source时这也很有用

使用中国版火狐通行证账号同步

火狐除了全球同步服务外,在中国大陆地区,谋智公司也提供了一个单独的中国版火狐通行证同步服务,为中国大陆地区的用户提供了更加稳定的同步服务器。

软件源中的 firefox 软件包默认仅支持全球同步服务。安装这个来自火狐中文社区的扩展 便可以启用中国版火狐通行证的同步服务。

JACK和PulseAudio用户播放视频没有声音

可能是因为这些视频有单声道音频。

如果JACK配置不仅仅使用立体声, 但你用的是普通耳机,便有可能出现此问题。 可以通过从PulseAudio JACK Sink连接 front-center 端口到系统输出的playback_1playback_2端口来简单地修复此问题.

这里有一个用于自动化处理该问题的脚本,但要注意这脚本中的端口等信息可能因人而异:

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"

地理定位功能不能用

最近,Google限制了Arch Linux的定位服务的使用,当在网站上启用地理定位时,会导致以下错误: Geolocation error: Unknown error acquiring position. 地区限制的服务如 Hulu 可能会显示一个类似的错误,提示你即使已允许站点的位置服务,也无法确定您的位置。

要解决此问题,可以换用 Mozilla Location Service. 方法是在 about:configgeo.provider.network.url修改为

https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%

参考FS#65241获得细节信息.

鼠标右键单击了窗口管理器中的第一个选项

可能会发生在 i3, bspwm and xmonad.

要解决此问题,在about:config修改ui.context_menus.after_mouseuptrue.

另见 [24]

参见