Вы можете быть в состоянии подделать его, сделав одно окно Firefox родителем другого. Я сделал быстрое доказательство концепции, используя SetParent
на два окне Firefox работает в отдельных процессах с различными путями профиля:
Внутренним окно, безусловно, субокно внешнего окна здесь. Например, если вы попытаетесь максимизировать внутреннее окно, оно просто расширяется, чтобы заполнить внешнее окно.
Однако вы не можете создать окно дочернего элемента вкладки, поскольку вкладка не является окном. Чтобы достичь иллюзии наличия окна, встроенного в вкладку, вам нужно будет слушать, когда текущая вкладка изменится (gBrowser.tabContainer.addEventListener("TabSelect", f)
) и переключится на правильное под-окно для этой вкладки. Вы можете использовать SetWindowPos
, чтобы изменить размер и изменить положение суб-окна, чтобы заполнить область содержимого вкладки.
Чтобы отрезать хромированные элементы (граница окна, панели инструментов и т. Д.), Вы можете либо использовать SetWindowRgn
, либо, возможно, удалить эти элементы из DOM этого окна.
Вам также необходимо убедиться, что подпроцессы Firefox закрыты, когда соответствующая вкладка закрыта.
Обратите внимание, что вы можете сделать все это с JavaScript, используя внешнюю функцию-интерфейс: https://developer.mozilla.org/en-US/docs/Mozilla/js-ctypes
Это может быть хитроумный задница решение, но если честно, я не могу думать ни о чем другом, что может возможно, лучше, кроме повторной оценки ваших требований. Firefox просто не предназначен для обработки более одного профиля для каждого процесса.
Как написано, это не является вопросом программирования. Таким образом: вопросы о ** общем компьютерном оборудовании и программном обеспечении не относятся к теме ** для переполнения стека, если только они не связаны напрямую с инструментами, используемыми в основном для программирования. Вы можете получить помощь по [Суперпользователю] (http://superuser.com/about). – Makyen