Man könnte es zu fälschen können, indem sie ein Fenster Firefox die Eltern eines anderen. Ich habe eine schnelle Proof of Concept SetParent
auf zwei Firefox-Fenster laufen in separaten Prozessen mit unterschiedlichen Profilpfade mit: hier
Das innere Fenster ist definitiv ein Unterfenster des äußeren Fensters. Wenn Sie beispielsweise versuchen, das innere Fenster zu maximieren, wird es einfach erweitert, um das äußere Fenster zu füllen.
Sie können jedoch kein Fenster als Kind einer Registerkarte anzeigen, da eine Registerkarte kein Fenster ist. Um die Illusion zu erhalten, das Fenster in eine Registerkarte eingebettet zu haben, müssten Sie darauf achten, wenn sich die aktuelle Registerkarte ändert (gBrowser.tabContainer.addEventListener("TabSelect", f)
) und in das richtige Unterfenster für diese Registerkarte wechseln. Sie können SetWindowPos
verwenden, um die Größe des Unterfensters zu ändern und es neu zu positionieren, um den Tab-Inhaltsbereich zu füllen.
Um die Chrome-Elemente (Fensterrahmen, Symbolleisten usw.) zu entfernen, können Sie entweder SetWindowRgn
verwenden oder diese Elemente aus dem DOM des Unterfensters löschen.
Sie müssen auch sicherstellen, dass die Firefox-Subprozesse geschlossen werden, wenn die entsprechende Registerkarte geschlossen wird.
Beachten Sie, dass dies alles von JavaScript tun können die Fremd-function-Schnittstelle: https://developer.mozilla.org/en-US/docs/Mozilla/js-ctypes
Dies ist ein vertrackt-ass Lösung sein kann, aber ehrlich gesagt kann ich denke an nichts anderes das könnte möglicherweise besser, abgesehen von der Neubewertung Ihrer Anforderungen. Firefox ist einfach nicht darauf ausgelegt, mehr als ein Profil pro Prozess zu bearbeiten.
Wie geschrieben, scheint dies keine programmspezifische Frage zu sein. Als solche: Fragen über ** allgemeine Computerhardware und -software sind off-topic ** für Stack Overflow, es sei denn, sie beziehen sich direkt auf Tools, die hauptsächlich für die Programmierung verwendet werden. Sie können möglicherweise Hilfe zu [Super User] (http://superuser.com/about) erhalten. – Makyen