Firefox 不读取默认配置文件

Firefox 不读取默认配置文件

我在 CentOS 上构建了 Firefox,但在设置默认首选项时遇到问题。根据官方文档

  1. 在 defaults/pref(在 Linux 上)中创建一个名为 autoconfig.js 的 JavaScript 文件

这是我的/tmp/ff-build/bin/defaults/pref/autoconfig.js

// First line must be a comment
pref("general.config.filename", "mozconfig.cfg");
pref("general.config.obscure_value", 0);
  1. 在程序目录中创建一个 .cfg 文件(按照惯例,mozilla.cfg — 它实际上可以是任何文件名;它只需与上面的 General.config.filename 首选项中指定的内容相匹配)。

这是我/tmp/ff-build/bin/mozconfig.cfg唯一的 Firefox 二进制文件:

// Disable updater
lockPref("app.update.enabled", false);
// make absolutely sure it is really off
lockPref("app.update.auto", false);
lockPref("app.update.mode", 0);
lockPref("app.update.service.enabled", false);

// Disable updater
lockPref("app.update.enabled¨, false);

Firefox 在没有当前的情况下可以正常运行autoconfig.js,但是使用上述配置,Firefox 无法启动,并显示弹出窗口:

读取配置文件失败。请联系您的系统管理员。

错误信息

我尝试将其复制mozconfig.cfg到多个目录,但没有任何变化。如何让 Firefox 接受该mozconfig.cfg文件?我是否误解了文档?

(配置文件被删除并重新创建,因此解决方案不会涉及向基于 ~/ 的文件夹添加任何内容。上述内容是为了使默认首选项正常工作。谢谢。)

答案1

“读取配置文件失败。请与系统管理员联系。”是通用失败消息。问题可能出在 autoconfig.js 或 mozconfig.js 中。

按照 @meuh 的建议运行strace -e ./firefox显示 Firefox 正在加载配置文件:

open("/tmp/ff-build/bin/mozconfig.cfg", O_RDONLY) = 5

但是,像这样放入 try/catchmozconfig.cfg不会发现任何问题:

// Disable default browser check
try {
    lockPref("browser.defaultbrowser.notificationbar", false);
    lockPref("browser.shell.checkDefaultBrowser", false);
    lockPref("browser.shell.skipDefaultBrowserCheck¨, true);

    // Disable updater
    lockPref("app.update.enabled¨, false);
} catch(e) {
    displayError("Error", e);
}

然而,空的mozconfig.cfg工作正常,因此进行了逐行删除和测试,发现了一个奇怪的双引号字符:¨。这是一个语法错误,并且正确地没有调用 try/catch。

通常,此类错误会在开发人员面板中捕获,但目前尚不可用。

运行上面的脚本通过jslint报告

未闭合的字符串。

lockPref("app.update.enabled¨, false);

这些是我调试和解决该通用错误消息所采取的步骤。我希望这些步骤对其他人也有帮助。

相关内容