以编程方式创建 Firefox 配置文件

Bre*_*mir 5 firefox-addon

问题

有没有一种简单的编程方式来创建新的 Firefox 配置文件?

nsIToolkitProfileService看起来它可能会起作用,但文档说:

从 Gecko 18(Firefox 18.0 / Thunderbird 18.0 / SeaMonkey 2.15 / Firefox OS 1.0.1)开始,您不应再使用此服务或 nsIToolkitProfile

为什么

我有兴趣这样做,因为我认为它可以用来让 Firefox 的独立可执行文件很容易地运行(例如,这样一个人可以在每个应用程序的任务栏中有一个完全独立的图标),而无需现在已经不复存在的 Prism/ Chromeless/WebRunner 项目。

我的方法是创建一个 Firefox 附加组件,它允许用户指定一个 Web 应用程序 URL,然后为他们自动创建一个命名空间配置文件,如“Executable1”、“Executable2”等应用程序以及一个批处理文件,它将针对该配置文件和应用程序调用命令行“-no-remote”参数(因为 -no-remote 似乎需要一个配置文件来创建新实例(我在中提到的“-new-instance”参数)一个错误似乎对我不起作用)。

nma*_*ier 5

我的猜测是人们要么想避免主线程 I/O。或者有人讨论从应用程序中删除配置文件管理器以加快启动速度并简化启动代码,所以这可能是原因。似乎 wiki 用户“victorporof”确实做了这个编辑,所以你可能应该 ping 他的解释(IIRC,他有一个 @mozilla.com 地址,你可以很容易地谷歌搜索;)

无论如何,一个新的配置文件只不过是一个空目录。该应用程序实际上会在启动后立即复制/创建丢失的文件。所以你的附加组件可能只是:

  • 在所需位置创建一个空目录。
  • 打开一个实例: -no-remote -profile $dir
  • 添加图标或其他什么。
  • 完成它。
  • 可选地使用profiles.ini,以便在常规配置文件管理器中列出新配置文件。

我经常从命令行做这样的事情,例如

mkdir -p central.profile && path/to/filefox -no-remote -profile $PWD/central.profile
Run Code Online (Sandbox Code Playgroud)

或者继续使用nsITOolkitProfileService直到它被真正移除。(这就是我可能会做的)。FWIW,甚至还有新代码仍在使用它,例如(远程)调试器。

此外,可能值得一看他们编码的独立配置文件管理器