In den aktuellen Desktop-Versionen des Firefox läuft der gesamte Browser in einem einzigen Betriebssystem-Prozess. Insbesondere läuft der JavaScript-Code, welcher die Browser-Benutzeroberfläche (auch "chrome code" bekannt) ausführt, im selben Prozess wie der Code von Webseiten (auch "Content" oder "Web Content" genannt).
Zukünftige Versionen von Firefox werden die Browser-Benutzeroberfläche in einem vom Web Content separaten Prozess ausführen. In der ersten Iteration dieser Architektur werden alle Browser-Tabs im selben Prozess laufen, getrennt vom Prozess, in dem die Browser-Benutzeroberfläche ausgeführt wird. In zukünftigen Iterationen wollen wir mehr als einen Prozess verwenden, um die Inhalte von Webseiten darzustellen. Das Projekt, welches den Multiprozess-Firefox abliefern soll, nennt sich Electrolysis (manchmal abgekürzt als e10s).
Normale Webseiten bleiben vom Multiprozess-Firefox unberührt. Die Menschen, die an Firefox selbst arbeiten sowie die Add-On-Entwickler werden von der Änderung nur beeinflusst sein, wenn ihr Code auf der Fähigkeit basiert, direkt auf Web Content zuzugreifen.
Anstatt direkt auf Content zuzugreifen, muss das chrome JavaScript den message manager nutzen, um auf Content zuzugreifen. Um den Übergang zu erleichtern, haben wir Cross Process Object Wrappers implementiert und einige Kompabilitäts-Shims für Add-On-Entwickler zur Verfügung gestellt. Falls du ein Add-On-Entwickler bist und dich fragst, ob du davon betroffen bist, siehe auch den Guide zur Arbeit mit dem Multiprozess-Firefox.
Multiprozess-Firefox ist momentan in der Developer Edition standardmäßig aktiviert.
- Technische Übersicht
- Ein sehr abstrakter Überbllick über die Implementierung des Multiprozess-Firefox.
- Web Content Kompatibilitätsanleitung
- Leitlinien und details zu potentiellen Web-Seiten-Kompatibilitätsproblemen, die durch den Übergang entstehen könnten. Tip: Es gibt nicht sehr viele!
- Glossar
- Ein Nachschlagewerk für den Jargon, der in Multiprozess-Firefox benutzt wird.
- Message manager
- Vollständiger Guide zu den Objekten, die für die Kommunikation zwischen Chrome (Benutzeroberfläche) und Content (Webseiten Code) benutzt werden.
- SDK basierte Add-ons
- Wie Add-ons, die mit dem Add-on SDK entwickelt wurden, migriert werden können.
- Welche URIs laden wo
- Eine schnelle Einführung darüber, welche URIs (chrome:, about:, file:, resource:), in welchem prozess laden.
- Motivation
- Die Gründe, wieso wir den Multiprozess-Firefox implementieren: Performanz, Sicherheit und Stabilität.
- Add-on migrations Anleitung
- Wenn du ein Add-on-Entwickler bist, finde heraus, ob du betroffen bist und wie du deinen Code aktuallisieren kannst.
- Cross Process Object Wrappers
- Cross Process Object Wrappers sind eine Migrationshilfe, die Chrome Code synchronen zugriff auf Content erlaubt.
- Debugging von Content-Prozessen
- Wie Code, der im Content-Prozess läuft (einschließlich Frame- und Prozessskripte), debugt werden kann.
- Tab auswahl in Multiprozess-Firefox
- Wie Tab-Wechsel funktioniert in Multiprozess-Firefox.
- Einschränkungen von Chrome-Skripten
- Praktiken, die in Chrome-Code nicht mehr funktionieren und wie man dies behebt.
- Einschränkungen von Frame-Skripten
- Praktiken, die innerhalb von Frame-Skripten nicht funktionieren werden und was stattdessen zutun ist.
Kontaktiere uns
Finde mehr über das Projekt heraus, mach mit oder frag uns etwas.
- Electrolysis Projektseite: https://wiki.mozilla.org/Electrolysis
- IRC: #e10s auf irc.mozilla.org
- Mailing-List: dev.tech.electrolysis