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

Firefox addon 以编程方式创建Firefox配置文件,firefox-addon,Firefox Addon,问题: 有没有一种简单的编程方式来创建新的Firefox配置文件 nsIToolkitProfileService看起来可能会有效果,但是 从Gecko18开始(Firefox18.0/Thunderbird 18.0/SeaMonkey 2.15/Firefox OS 1.0.1),您不应再使用此服务或nsIToolkitProfile 为什么: 我对此很感兴趣,因为我认为它可以用来让Firefox的独立可执行文件非常容易地运行(例如,每个应用程序的任务栏中都可以有一个完全独立的图标),而不需

问题

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

nsIToolkitProfileService
看起来可能会有效果,但是

从Gecko18开始(Firefox18.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似乎不需要配置文件来创建新实例(我在bug中看到的“-new instance”参数似乎对我不起作用).

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

无论如何,新配置文件只不过是一个空目录。应用程序一启动就会复制/创建丢失的文件。因此,您的加载项可以:

  • 在所需位置创建一个空目录
  • 打开实例:
    -无远程-配置文件$dir
  • 添加图标或任何东西
  • 别再提了
  • 可选地与profiles.ini混淆,以便在常规概要文件管理器中列出新概要文件
我经常在命令行中做类似的事情,例如

mkdir -p central.profile && path/to/filefox -no-remote -profile $PWD/central.profile
或者继续使用
nsITOolkitProfileService
,直到它被实际删除为止(我可能会这么做)。FWIW,甚至还有新代码在使用它,比如(远程)调试器


另外,可能值得一看他们的编码。

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

链接到主题:

这是:


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

Hi@nmaier你能帮我获得更多信息吗。我正试图使用OS.File重命名一个配置文件,但简单地重命名fodler并不能做到这一点。基本上,我正在尝试查找fiels与之相关的信息e nsIToolkitProfileService正在打开/关闭/检查锁定/编辑,你能帮我在MXR上找到这个吗。我正在尝试与victor guy联系。我无法收到他的电子邮件,所以我给他发了推特。你确定victor是对文章进行更改的人吗?请参阅下面的答案,mdn文章上的消息是错误的。你仍然这样做吗需要帮助我发现了一些新信息。是的,如果你不介意的话,我会感兴趣的。它不在我的待办事项列表的顶部,但如果你有时间,我会感兴趣的信息,谢谢!这个问题太老了吗?实际上你可以创建一个配置文件,只需启动
firefox-CreateProfile myprofile
,然后就可以创建了r random.myprofile name.这里有完整的firefox命令文档嘿,伙计,我向amo发布了profilist。函数在其中,我不知道
promise
s我做的太好了。所以我有一些润色工作要做。但是如果你在这个项目上取得了进展,而我没有时间清理函数,请告诉我,这将是kick让我开始微调函数。尝试从那里提升函数并使用,但是,plz共享任何imrpvoments。虽然我很想抓住这个势头,但许多其他项目已经被推到了我的优先级列表的顶部,尽管我仍然非常想尽可能回到OP中提到的工作,并且我添加了一个todo/链接回这篇文章以供参考,因为我可以抽出时间回到这篇文章。