【问题标题】:is it possible to open multi profiles on the same window?是否可以在同一个窗口中打开多个配置文件?
【发布时间】:2017-01-09 11:57:32
【问题描述】:

我知道我可以在 Firefox 窗口中打开多个配置文件(不同的代理),每个配置文件, 有许多扩展或命令“-P {PROFILENAME} -no-remote”。

我会问是否可以在同一个窗口中打开多个配置文件,在一个选项卡中打开每个配置文件(考虑让某人开发自定义扩展)。

谢谢大家

【问题讨论】:

  • 正如所写,这似乎不是一个特定于编程的问题。因此:关于通用计算硬件和软件的问题与 Stack Overflow 无关,除非它们直接涉及主要用于编程的工具。您可以通过Super User 获得帮助。

标签: firefox-addon firefox-addon-sdk mozilla add-on


【解决方案1】:

您可以通过将一个 Firefox 窗口设置为另一个窗口的父级来伪造它。我在两个 Firefox 窗口上使用 SetParent 做了一个快速的概念证明,这些窗口运行在具有不同配置文件路径的不同进程中:

这里的内窗口肯定是外窗口的子窗口。例如,如果您尝试最大化内部窗口,它只会扩展以填充外部窗口。

但是,您不能将窗口作为选项卡的子级,因为选项卡不是窗口。要实现将窗口嵌入选项卡的错觉,您必须监听当前选项卡何时更改 (gBrowser.tabContainer.addEventListener("TabSelect", f)) 并切换到该选项卡的正确子窗口。您可以使用SetWindowPos 调整子窗口的大小和位置以填充选项卡内容区域。

要切掉 chrome 元素(窗口边框、工具栏等),您可以使用 SetWindowRgn 或者从子窗口的 DOM 中删除这些元素。

您还必须确保在关闭相应选项卡时关闭 Firefox 子进程。

请注意,您可以使用外部函数接口在 JavaScript 中完成所有这些操作:https://developer.mozilla.org/en-US/docs/Mozilla/js-ctypes


这可能是一个狡猾的解决方案,但老实说,除了重新评估您的要求之外,我想不出任何其他可能更好的方法。 Firefox 的设计初衷并不是为每个进程处理多个配置文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-10
    • 1970-01-01
    相关资源
    最近更新 更多