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

时间:2013-09-10 05:31:57

标签: firefox-addon

问题

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

nsIToolkitProfileService看起来似乎可以解决问题,但docs说:

  

从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&应用程序的#34;等等以及将调用命令行的批处理文件" -no-remote"反对该配置文件和应用程序的参数(因为-no-remote似乎需要一个配置文件来创建一个新实例(我在bug中提到的" -new-instance"参数似乎对我不起作用) )。

2 个答案:

答案 0 :(得分:4)

我的猜测是人们要么想要避免主线程I / O.或者有人谈论从应用程序中删除概要文件管理器以使启动更快并简化启动代码,这可能是原因。好像维基用户“victorporof”确实做了这个编辑,所以你可能应该ping他的解释(IIRC,他有一个你可以轻松google的@ mozilla.com地址;)

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

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

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

mkdir -p central.profile && path/to/filefox -no-remote -profile $PWD/central.profile

或者继续使用nsITOolkitProfileService,直到实际删除它为止。 (这就是我可能会做的)。 FWIW,甚至还有使用它的新代码,如(远程)调试器。

此外,可能值得查看他们编码的the standalone profile manager

答案 1 :(得分:1)

所以根据来自ask.m.o的Neil,他说,当他们制作OS.File时,说不使用这项服务的消息是自动放在那里的。它将该消息错误地添加到此页面。该服务可用,但OS.File是首选方式。所以我用OS.File创建了一些函数来实现它。

链接主题:ask.m.o: OS.File instead of nsiToolkitProfileService?

这是: https://gist.github.com/yajd/9791029

它仍然是一项正在进行的工作需要更多微调,我在我的插件Profilist中做了,我很快就会发布,然后在这里发布。